在Perforce中,如何获得作为标签一部分的最高changlist号码?

时间:2017-05-03 09:42:38

标签: perforce

所以,我来到Perforce的网站this answer,似乎建议使用 p4更改-m1 @ label1 作为命令。不幸的是,我遇到了一些标签的 请求太大(超过100000) 问题,这让我非常疯狂,因为我已经包含了 -m1 选项。有没有办法避免这个错误,或者是否有另一个命令来获得相同的结果。感谢您提前的答案。

2 个答案:

答案 0 :(得分:2)

由于标签可以包含任意一组修订版,因此服务器在所有修订版中找到最高更改列表的唯一方法是扫描每个修订版以查找与每个修订版关联的更改列表并返回其找到的最高版本列表,因此它是O(n),其中n是标签大小。如果您在100k时达到MaxScanRows限制,我会假设这些标签包含超过100k的文件?您可以通过使用-Zdbstat标志运行它来查看任何给定命令扫描的记录数,如下所示:

p4 -Zdbstat changes -m1 @label

增加MaxScanRows是一种解决方案,正如P4Jen所说,但它不会让命令扫描任何更少的行或消耗更少的时间。作为一个更全面的解决方案,我建议尽可能远离手动填充标签,并转移到定义为简单更改列表别名的标签:

Label: label
Revision: @CHANGE
View:

请注意,要获得"别名"的全部性能优势。标签(即处理与更改完全相同的标签)必须将“修订”字段设置为更改列表,并且“视图”字段必须为空(如果“查看”字段不为空,则表示“#34;自动&#34” ;标签有自己的性能特点)。

使用别名标签,只需将标签视为O(1)操作即可获得等效的更改列表。 :)

答案 1 :(得分:1)

听起来你正在达到'MaxScanRows'限制。

这可以由管理员设置。

有关它的更多信息,请访问:   http://answers.perforce.com/articles/KB/2529

希望这有帮助, 仁。