Perforce:如何在分支之间获得所有已更改文件的差异?

时间:2012-03-06 17:47:00

标签: merge branch diff perforce

我有两个分支主线 rcat 。我一直在 rcat 上工作一段时间(多个CLN /提交),并希望合并到主线。但是,在合并之前,我需要提交差异以进行代码审查。

我想在主线和rcat分支之间获得一个统一差异。我试过了:

p4 diff2 -duw //depot/my/project/path/projectname/mainline/...  //depot/my/project/path/projectname/rcat/... >> diff.txt

这不会给我在rcat中添加的文件,也列出了一堆未更改的文件。我如何获得差异:

  1. 对现有文件进行了更改
  2. 有新文件
  3. 忽略未更改的文件
  4. 谢谢!

1 个答案:

答案 0 :(得分:6)

在我使用Perforce的团队中,我们通常会从开发分支合并到主线,然后在主线上的待定更改列表上执行代码审查。从你的例子:

p4 integrate //depot/my/project/path/projectname/rcat/... //depot/my/project/path/projectname/mainline/...
p4 resolve -am
# Deal with any merge conflicts
p4 diff -du > diff.txt

diff.txt将对现有文件进行更改,并将已删除的文件显示为已清空其内容,但实际上不会显示新文件。 (我的团队使用Code Collaborator进行代码审查,处理添加的文件。)

或者,如果你有类似Linux的差异,你可以尝试(假设你mainline/...映射到mainline目录,rcat/...映射到rcat }目录):

diff -Nur mainline rcat > diff.txt

将按照您的预期处理已删除的文件和添加的文件。 (您可能希望先从mainline集成到rcat,以便显示的更改只是对rcat所做的更改。)