如果你做 sync 经常,即使这样做,也可能会发生任何事情。如果您执行强制同步(sync -f)肯定会盲目地同步服务器中的所有文件,如果您有一个大项目,这是不可接受的。

问题是如何进行快速同步?

有帮助吗?

解决方案

您问题的关键部分是“即使应该”。毫无损失,在我(也)多年的Perforce经验中,习惯性地恢复强迫同步的用户,因为正常同步没有做到他们期望的事情,但无法正确使用Perforce。

您必须让Perforce为您管理硬盘 - 服务器知道您拥有哪些文件的版本,因此正常的同步只能获得所需的内容。如果失败了,那么几乎没有例外,表明用户正在修改,删除,添加,重命名perforce之外的文件(例如在Explorer中)。

有时,您可能会得到导致此功能的系统有趣的系统(即PC故障),因此不一定是用户故障。但是这些非常罕见 - 因此我上面的“习惯性”预选赛。

如果您想到的是,请掌握任何事情,您没有做任何与众不同的事情,请开始查看其他哪些过程正在调整这些文件。例如,您是否构建系统会做一些奇怪的事情,并尝试在构建文件时修改文件?您是否有一个开放网络分享,也许其他人无意间戳了?您是否有干涉的备份系统?

希望有帮助。

其他提示

如其他答案所述,您需要为从仓库同步的目录树的每个“实例”创建一个单独的客户端(工作空间)。

如果您只想强制同步,那些从仓库更改的文件:

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

警告:这将覆盖任何本地更改的文件(在当前目录和子目录中)。

相反,如果您编辑了一些文件,而忘记将它们首先打开以进行编辑,则可以执行此操作:

p4 diff -se ... | p4 -x - edit

将打开用于编辑与仓库不同的文件。

和这个:

p4 diff -sd ... | p4 -x - delete

将打开以删除本地删除的任何文件。

如果您创建了不一致的情况,那么Perforce就会失去工作空间中发生的事情,则应使用“和解离线工作...”功能(在P4V中)。

这将运行一个文件夹差异,并告诉您要解决不一致之处的选项。

通常,请确保您始终通过Perforce明确查看文件(打开供编辑)。如果您习惯了其他系统,这感觉很奇怪。

我相信您要寻找的命令是P4干净。

从: http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_clean.html

“工作空间中存在的文件,但是仓库中缺少的文件是从工作区中删除的。仓库中存在的文件,但工作空间中缺少。从仓库同步的文件的版本添加到您的工作区中。修改文件。在您的工作空间中,尚未签入的工作空间已恢复为从仓库同步的最后一个版本。”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top