如何指示 perforce 命令行在取消搁置时合并文件而不是覆盖它们?
用例如下:我有一个更改“my_file”的架子。在架子的“干净”(p4恢复...)所有者上,我更新到最新版本。然后我想取消搁置,但该操作应该合并任何潜在的冲突,而不是覆盖它们。这可以通过命令行实现吗?
的命令行版本如果您的工作空间“干净”,就不会有冲突。 该文件将被取消搁置为原来搁置的版本;如果您同步到不同的版本,将会自动安排解析。
如果您的本地文件已打开,取消搁置将自动安排解析(至少对于当前版本;旧版本将拒绝取消搁置打开的更改)。
如果您的本地文件被修改但未打开,您可能会遇到您所描述的覆盖行为。 不要那样做。 :) 在取消搁置之前使用“p4 reconcile”以确保修改的文件正确打开,或使用“p4 clean”放弃这些修改。
如果仓库中的文件被其他用户更新,并且您需要合并搁置的文件,您应该运行以下命令
p4 sync
p4 unshelve
p4 sync
p4 resolve
这里有一个简短的解释:
从仓库获取最新版本:
p4 sync
取消搁置您的变更列表。现在
p4 diff
显示文件已被替换:
p4 unshelve -c <changelist>
再次运行同步!现在您应该看到类似以下内容:“提交之前必须解析#19,#21”:
p4 sync
解决冲突,他的命令将合并你的文件并解决冲突(你可以使用-am进行自动合并):
p4 reslove -am