【发布时间】:2012-04-01 15:37:04
【问题描述】:
每次构建时,我们都必须记录源文件的更改列表数量以进行跟踪。我们有不同的项目(在不同的目录下),它们以不同的变更列表编号同步。能否请您告诉我如何获取特定目录的更改列表编号?
感谢任何建议。谢谢和最好的问候
【问题讨论】:
-
也许一个标签会很有用。标签可以记录你构建的文件的修订版本。
-
感谢大家的建议!
标签: perforce
每次构建时,我们都必须记录源文件的更改列表数量以进行跟踪。我们有不同的项目(在不同的目录下),它们以不同的变更列表编号同步。能否请您告诉我如何获取特定目录的更改列表编号?
感谢任何建议。谢谢和最好的问候
【问题讨论】:
标签: perforce
如果您的构建系统总是在构建之前同步到目录的头部,您可以使用p4 changes -m 1 //path/to/your/project/... 获取该目录的头部更改列表编号。
如果您使用这种方法,我建议在同步之前运行更改命令,然后显式同步到该更改列表。这应该消除有人在更改命令和同步命令之间签入的机会。
【讨论】:
此外,还有p4 changes -m1 //path/to/your/project/...#have,如果在同步文件以进行构建的客户端工作区中运行,它将为您提供工作区中文件的最高变更列表编号。
【讨论】:
p4 changes -m1 ...#have 给了我一个比同步工作区早 2 天的修订版。为什么会这样?
如果不想指定目录,也可以使用短版p4 changes -m1 #have。
如果您使用“#”是 bash 之类的注释字符的 shell,请记住将其转义如下:p4 changes -m1 \#have
【讨论】:
p4 changes -m1 '#have'
p4 cstat //path/to/your/project...#have |grep -B1 have|tail -n2
@thegeco,这不需要高 max_scanrows perforce 限制
【讨论】:
p4 changes ... #have 也可以。
我在 P4V 客户端中使用“懒惰的手动方式”(也就是我不知道更好):
在“提交”选项卡过滤器中使用它://yourproject/...#>have 它会告诉你哪些 CL 没有同步,注意最旧的。 删除 #>have 过滤器,看看你刚才提到的那个之前的 CL 是什么。
【讨论】:
就我而言,我只想知道在特定目录中打开(未同步到)哪个更改列表编号。为此,我愿意:
p4 opened -s | cut -d' ' -f5 | uniq
【讨论】: