撤消Perforce中的空白更改

时间:2017-10-25 17:05:25

标签: whitespace perforce

是否有一种简单的方法来撤消Perforce中的空白变化?

我有一个.vimrc脚本可以在保存时修剪尾随空格,但在某些代码分支中,所述代码的所有者不需要空格差异。

我通常必须复制我的文件,还原原始文件,然后手动整合我所做的非空白更改。

Perforce(或其他UNIX工具)中是否有一个可以自动执行此操作的简单命令?

p4 resolve作为忽略空格的-dw选项,但我不知道如何让文件首先解析。

1 个答案:

答案 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之前确保差异正确。