如何确定在Perforce中同步的最后一个更改列表?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

偶尔出现的问题是确定您上次在Perforce中同步的更改列表的最佳方式。这通常是需要的,例如通过自动构建系统将更改列表编号注入修订信息。

提问于
用户回答回答于

对于自动构建系统,我推荐相反:你应该首先使用以下命令从服务器获取最新的更改列表:

p4 changes -s submitted -m1

然后同步到该更改并将其记录在修订信息中。原因如下。尽管Perforce建议执行以下操作以确定工作区同步到的变更列表:

p4 changes -m1 @clientname

他们注意到一些陷阱:

  • 这只适用于未从相关工作区提交任何内容的情况。
  • 客户端工作区也可能未同步到任何特定的更改列表。

还有一个他们没有提到的问题:

  • 如果同步发生在工作区中的严重删除文件的最高更改列表中,则会报告次最高更改列表(除非它也严格删除文件)。

如果你必须先同步并稍后进行录制,则Perforce建议运行以下命令以确定你是否遇到了上述问题; 它应该表明什么都没有同步或删除:

p4 sync -n @changelist_number
用户回答回答于

从命令行使用:

p4 changes -m1 @<clientname>

只需替换为客户端规范的名称即可。这将产生以下形式的输出:

Change 12345 on 2008/08/21 by joebloggs@mainline-client '....top line of description...'

这很容易解析,以提取更改列表号码。

扫码关注云+社区