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

标签 merge branch diff perforce

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

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

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

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

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

谢谢!

最佳答案

在我工作过的使用 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 的 diff,您可以尝试(假设您将 mainline/... 映射到 mainline 目录,并且 rcat/... 映射到 rcat 目录):

diff -Nur mainline rcat > diff.txt

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

关于merge - Perforce:如何获得分支之间所有已更改文件的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589080/

相关文章:

javascript - 如何联合javascript中的复杂对象?

javascript - Gruntfile.js 中 JSON 文件的动态合并

Git:如何列出 merge 分支上的提交?

python - 通过将另一列与第二个 DataFrame 进行比较来替换一列中的值

git - 如何删除 git MERGE_MSG?

git - 如何正确使用git和分支

visual-studio - TFS SourceControl 从主干分支合并

php - 2个数据库的差异,保存不同的行

Git diff 工具重置为 git default

git - 手工编辑的补丁文件归功于谁?