是否有一种简单的方法来撤消Perforce中的空白变化?
我有一个.vimrc脚本可以在保存时修剪尾随空格,但在某些代码分支中,所述代码的所有者不需要空格差异。
我通常必须复制我的文件,还原原始文件,然后手动整合我所做的非空白更改。
Perforce(或其他UNIX工具)中是否有一个可以自动执行此操作的简单命令?
p4 resolve
作为忽略空格的-dw
选项,但我不知道如何让文件首先解析。
答案 0 :(得分:2)
假设在此示例中您的修订版本为#4
,而您的文件为foo
:
p4 sync file#3
p4 edit file
p4 sync file
p4 resolve -dw
您还可以在更改列表级别的多个文件中执行此操作;同步回上一次更改,打开进行编辑,同步到您的更改,使用任何选项解决。
我认为当你执行resolve -dw
时,它会保留“你的”版本的仅限空格的差异,在这种情况下将是file#3
这就是你想要的。
请注意,如果你有单独的行同时具有空白和非空白差异,那么你很可能会得到空白差异以及其他行,因为Perforce的合并是按行进行的。如果所有其他方法都失败了,请找到另一个合并工具,它将执行您要对空白执行的特定操作,将P4MERGE
设置为该工具,然后执行p4 resolve
; m
。
如果您的更改仍未解决,我认为您可以执行以下操作:
p4 print -o depotRev file
p4 merge3 -dw depotRev file depotRev > merged
rm depotRev
然后做:
diff file merged
在使用file
替换merged
之前确保差异正确。