Perforce 性能:避免在正常运行后强制同步;获取最新版本“;没有得到全部

Perforce 性能:避免在正常运行后强制同步;获取最新版本“;没有得到全部,perforce,Perforce,我想知道是否有一种方法可以告诉perforce只同步丢失的(来自给定的工作区视图)文件,而不覆盖正确的现有文件,即在正常的“获取最新版本”(p4 sync)未获取所有文件后避免使用p4 sync-f。如果p4 sync未获取文件,然后perforce服务器认为您已经拥有了它 p4 sync#0使服务器与丢失的文件同步,然后p4 sync获取新副本 或者,p4 sync-f/..将只同步丢失的树。无法避免全局-f选项 如果普通同步没有获得文件的最新版本,则Perforce认为您已经拥有了该文件。您

我想知道是否有一种方法可以告诉perforce只同步丢失的(来自给定的工作区视图)文件,而不覆盖正确的现有文件,即在正常的“获取最新版本”(
p4 sync
)未获取所有文件后避免使用
p4 sync-f

如果
p4 sync
未获取文件,然后perforce服务器认为您已经拥有了它

p4 sync#0
使服务器与丢失的文件同步,然后
p4 sync
获取新副本


或者,
p4 sync-f/..
将只同步丢失的树。

无法避免全局
-f
选项

如果普通同步没有获得文件的最新版本,则Perforce认为您已经拥有了该文件。您是否已将文件状态设置为可在Performance外部写入

如果您知道哪些文件/文件夹受到影响,您可以在这些文件/文件夹上使用
-f
,这会更快,但确实意味着您可能会错过一些内容。

尝试以下方法:

p4 diff -sd | p4 -x- sync -f

这是一个链式命令,它将查找工作区中所有已知的非头版本文件(
p4 diff-sd
),然后强制同步,只同步那些文件(
p4-x-sync-f
)。注意
-x-
的使用,它指示第二个命令从标准输入(STDIN)读取

我没有将文件状态设置为可在Perforce之外写入,所以只有在签出时才可以。从我的角度来看,请参见第三个答案。作为旁注:
p4 diff-sd./…
可以用来避免检查整个工作区,但只检查当前目录。非常酷,这就是我想要的!它确保了我拥有所有,同时与仅使用p4 sync-f相比,可能节省了大量时间(另外还显示了如何检查本地工作区中的“间隙”)-谢谢+1.这和我写的答案是一样的。我编辑了您的答案,添加了有关该命令如何工作的更多详细信息。