【问题标题】:Show which files got changed in any SVN branch but did not yet get merged to the trunk显示在任何 SVN 分支中哪些文件已更改但尚未合并到主干
【发布时间】:2018-09-01 01:29:03
【问题描述】:

在我们的 subversion 存储库中,更改通常在一个或多个功能分支中完成,但也在主干中完成。在我们向测试部门发布下一个版本之前,我们想检查是否有任何文件在任何分支中发生了更改,但尚未合并到主干。此外,有时我们只会列出所有修订的列表,无论是在主干还是任何分支中,其中特定文件已被修改,因此我们可以查看所有提交(不仅仅是合并回主干创建的一个大提交) .

示例:有一个名为/trunk/src/main.c 的文件和/trunk 的几个分支。现在src/main.c/trunk//branches/feature99/src/main.c 中都发生了变化。我现在想获得一个列表或图表,它向我显示 a) 分支中存在未完成的更改(即之后没有合并到主干)和 b) main.c(在任何分支中)的所有修订都已更改。

有没有一种工具可以显示这一点,最好是在一个漂亮的图表或列表中?这可以基于每个文件,但如果我们能够获得所有已提交修改但尚未合并到主干的文件的列表,那就更好了。

TortoiseSVN 创建的修订图在用于单个文件或目录时非常接近,但例如不显示合并。

我意识到这需要扫描整个存储库,因为此信息不能直接在 svn repo DB 中获得。

【问题讨论】:

    标签: svn merge tortoisesvn branch


    【解决方案1】:

    假设您在您的存储库中启用了合并跟踪,svn mergeinfo --show-revs eligible 将向您显示自上次合并以来分支上的修订 - 即符合合并条件的那些。

    然后再深入一点,svn mergeinfo --show-revs eligible --log 包含日志条目,然后也添加 -v 以列出修改的文件。

    svn mergeinfo http://host/svn/branches/b1 http://host/svn/trunk --show-revs eligible --log -v
    ------------------------------------------------------------------------
    r7 | username | 2018-04-09 21:31:21 +0100 (Mon, 09 Apr 2018) | 1 line
    Changed paths:
       M /branches/b1/dir/file.txt
    
    Second change on b1
    ------------------------------------------------------------------------
    

    以防万一它不熟悉 TortoiseSVN,svn 命令可在诸​​如 C:\Program Files\TortoiseSVN\bin 之类的地方使用 - 希望已经在您的路径上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-02
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多