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

Roh*_*hit 2 diff merge perforce branch

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

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

p4 diff2 -duw //depot/my/project/path/projectname/mainline/...  //depot/my/project/path/projectname/rcat/... >> diff.txt
Run Code Online (Sandbox Code Playgroud)

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

  1. 已更改现有文件
  2. 有新文件
  3. 忽略未更改的文件

谢谢!

Com*_*ger 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
Run Code Online (Sandbox Code Playgroud)

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

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

diff -Nur mainline rcat > diff.txt
Run Code Online (Sandbox Code Playgroud)

它将按照您的预期处理已删除的文件和添加的文件.(您可能希望从第一个集成mainlinercat第一个,因此显示的更改只是那些所做的更改rcat.)

  • 我最终在两个目录上做了常规差异. (3认同)