使用P4COM的结果很奇怪

时间:2020-03-06 15:02:10  来源:igfitidea点击:

我正在使用P4COM与我们的perforce服务器进行通信。我编写了一个小工具来简化对哪些文件从一个发行版更改到另一个发行版的质量检查。我一直在使用Delphi的P4COM接口。到目前为止,一切都很好。

尽管允许用户从我的小实用程序中查看文件的两个版本之间的差异,而不是回到p4v,可能会更好。因此,我使用p4COM和以下命令在每个修订版上打印(获取)文件

print -o "E:\Development\TempProjects\p4Changes\temp\File_dispatch.pas#25"  "//depot/mydepotpath/File_dispatch.pas"#25

print -o "E:\Development\TempProjects\p4Changes\temp\File_dispatch.pas#26"  "//depot/mydepotpath/File_dispatch.pas"#26

但是,当我使用P4COM从我的应用程序执行此操作时,我似乎得到了随机文件(并且它们似乎已被删除)。如果我从命令行运行完全相同的命令,我将获得完美的结果。运行这两个命令确实会返回一个文件,并将其正确地转储到我想要的磁盘上,而不只是我要的文件。

有任何想法吗?

解决方案

我们最好要求Perforce支持自己,因为这听起来像是他们软件中的错误。

作为旁注:为什么要使用p4v? (我自己更喜欢p4win)

命令字符串中是否可能是反斜杠问题?这在命令行上可以正常工作,但是单个反斜杠可能会被我们使用的任何语言编译器解释为转义代码(如果使用C或者C ++,则肯定会引起问题,并且可能在后台运行) P4COM端)。

尝试使用双反斜杠,看看是否可以解决。