Perforce 在客户端工作区中查找除p4 changes cmd以外的最大变更列表
我需要在我的客户端工作区中找到同步的最大变更列表,一个选项是使用Perforce 在客户端工作区中查找除p4 changes cmd以外的最大变更列表,perforce,Perforce,我需要在我的客户端工作区中找到同步的最大变更列表,一个选项是使用 p4 changes -m 1 @client_name 但由于我的分支中有大量文件,因此发布p4更改的成本很高,因此我需要一些有效的方法来解决这个问题。提前谢谢 您的问题不在于您使用的是p4更改,而在于您使用它的方式碰巧非常低效。如果您转到客户端的根目录,并要求它提供您已同步到该目录树中的最新更改,则速度相当快: $ time p4 changes -m 1 ...#have Change 2559333 on 2014/01
p4 changes -m 1 @client_name
但由于我的分支中有大量文件,因此发布
p4更改
的成本很高,因此我需要一些有效的方法来解决这个问题。提前谢谢 您的问题不在于您使用的是p4更改
,而在于您使用它的方式碰巧非常低效。如果您转到客户端的根目录,并要求它提供您已同步到该目录树中的最新更改,则速度相当快:
$ time p4 changes -m 1 ...#have
Change 2559333 on 2014/01/25 by joe@some-client
real 0m0.209s
user 0m0.010s
sys 0m0.020s
与之相比:
$ time p4 changes -m 1 @my-perforce-client
Change 2559333 on 2014/01/25 by joe@some-client
real 1m57.943s
user 0m0.010s
sys 0m0.020s
请注意,
p4更改-m1…#have
不会总是向您显示您的客户端同步到的最后一次更改;它将向您显示客户的最后更改。例如,如果您的客户已同步到change 123,但您后来提交了change 456,p4 changes-m1…#have
将报告change 456。为了解决这个问题,通常建议使用p4 changes-m10…#have
(或足够高的-m
值),然后过滤掉您自己的更改。我不知道@client
版本为什么这么慢,但我猜这需要首先查询服务器,以确定客户端视图中有哪些文件。不过最大的问题是第一个文件不能满足您的需要。@gsf Oops,我太粗心了。我的回答主要是为了解决性能问题。我已经更新了我的答案。