我如何检测到 p4 同步导致冲突?

How can I detect that a p4 sync leads to a conflict?

我正在处理更新客户端工作区的批处理过程,这可能会由于在客户端工作区中打开文件而导致冲突:

D:\perforce\project>p4 sync D:\perforce\project\...@12345

可能导致:

//server/project/inc/test.h#106 - is opened and not being changed ... //server/project/inc/test.h - must resolve #106 before submitting

如何在不解析同步操作的 p4 输出的情况下检测此 before/after 批处理作业?

任何解决方案都将涉及 运行 一个命令并解释其输出。

要在文件打开之前检测(这意味着同步将无法更新这些文件 and/or 可能会安排解析操作),请使用 p4 opened 命令,例如:

p4 opened D:\perforce\project\...

要专门获取有关同步将执行的操作的信息(它会安排解析还是会跳过文件,因为它们已经以大于 12345 的修订版打开?),请执行 sync -n:

p4 sync -n D:\perforce\project/...@12345

要事后发现是否有任何未决的解析操作,请执行 p4 resolve -n:

p4 resolve -n
OR: p4 resolve -n D:\perforce\project\...  (to limit the scope to that directory)