Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perforce 在客户端工作区中查找除p4 changes cmd以外的最大变更列表_Perforce - Fatal编程技术网

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,我太粗心了。我的回答主要是为了解决性能问题。我已经更新了我的答案。