Perforce:撤销和强制同步有什么区别?

3
这两个命令有何区别(如果有的话):

# revert my file to the revision last synced from the depot
p4 revert test.c

# force synchronization to refresh file and discard pending changes
p4 sync -f test.c

谢谢

2个回答

6
在您的情况下,这些命令很相似,但是:
  1. revert 仅会还原当前标记为打开状态的文件;sync -f 仅会覆盖当前未打开的文件。
  2. revert 需要一个文件模式作为参数,sync -f 不需要。
  3. sync -f 即使您当前的副本没有被修改,也会导致服务器向您发送一个新的文件副本,因此浪费了计算机时间和网络资源。
还有其他的区别,但对于您的情况似乎不那么重要。
在我看来,将工作区返回到未修改状态的最好方式实际上是使用 p4 clean,该命令在 2014.1 版中添加到服务器中。这里有一篇很好的关于 clean 命令的文章:https://www.perforce.com/blog/140501/p4-clean-make-workspace-shine 有关其他替代方案,请参见此相关问题:Perforce fast sync a directory to a clean state

3

我不相信 p4 sync -f 会丢弃您的本地待提交更改。请使用p4 revert


如果文件没有被打开以进行编辑,则"sync -f"将覆盖该文件,从而丢弃您尚未提交的本地更改。 - Bryan Pendleton
1
当然。我以为它已经打开进行编辑了,因为carmellose正在询问“p4 revert”。 - sferencik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接