【问题标题】:Perforce: How do I get a diff of all changed files between branches?Perforce:如何获得分支之间所有更改文件的差异?
【发布时间】:2012-03-24 05:58:36
【问题描述】:

我有两个分支 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. 忽略未更改的文件

谢谢!

【问题讨论】:

    标签: merge branch diff perforce


    【解决方案1】:

    在我工作过的使用 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 所做的更改。)

    【讨论】:

    • 我最终对两个目录进行了常规比较。
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    相关资源
    最近更新 更多