如果你sync在perforce中做了一件事,很多时候,即使它应该做也不会做任何事情.如果你进行强制同步(sync -f)它肯定会盲目地同步服务器上的所有文件,如果你有一个大项目,这是不可接受的.
问题是如何进行快速同步?
Gre*_*eld 18
你问题的关键部分是"即使它应该".毫无疑问,在Perforce的所有(太多年)经验中,习惯性地恢复强制同步的用户,因为正常的同步不能达到他们的预期,并没有正确使用Perforce.
您必须让Perforce为您管理您的硬盘 - 服务器知道您拥有哪些文件版本,因此正常同步只能获得所需的内容.如果失败,则几乎无一例外地表明用户正在修改,删除,添加,重命名Perforce之外的文件(例如在资源管理器中).
有时你可能会得到一个有趣的系统(即PC故障)导致这种情况,所以它不一定是用户的错误.但这些是非常罕见的 - 因此我的"习惯性"资格赛上面.
如果您认真思考,并没有做任何与众不同的事情,那么就开始考虑其他进程可能会调整这些文件.例如,您是否构建系统做了一些奇怪的事情,并尝试在构建时修改文件?你有一个开放的网络共享,或许其他人无意中戳了吗?你有一个干扰的备份系统吗?
希望有所帮助.
小智 6
正如其他答案所述,您需要为从软件仓库同步的目录树的每个"实例"创建一个单独的客户端(工作区).
如果要强制同步仅从库中更改的那些文件:
p4 diff -se ... | p4 -x - sync -f
p4 diff -sd ... | p4 -x - sync -f
Run Code Online (Sandbox Code Playgroud)
警告:这将覆盖任何本地更改的文件(在当前目录和子目录中).
如果你编辑了一些文件并忘了先打开它们进行编辑,你可以这样做:
p4 diff -se ... | p4 -x - edit
Run Code Online (Sandbox Code Playgroud)
将打开以编辑与仓库不同的任何文件.
还有这个:
p4 diff -sd ... | p4 -x - delete
Run Code Online (Sandbox Code Playgroud)
将打开以删除任何本地删除的文件.
| 归档时间: |
|
| 查看次数: |
11445 次 |
| 最近记录: |