在我们的 subversion 存储库中,更改通常在一个或多个功能分支中完成,但也在主干中完成。在我们向测试部门发布下一个版本之前,我们想检查是否有任何文件在任何分支中发生更改但尚未合并到主干中。此外,有时我们只会有一个所有修订的列表,无论是在主干还是任何分支中,其中特定文件被修改,因此我们可以查看所有提交(不仅仅是由合并回主干创建的一个大提交) .
示例:有一个名为 /trunk/src/main.c
的文件和/trunk
的几个分支.现在 src/main.c
更改为 /trunk/
但也在 /branches/feature99/src/main.c
.我现在想要得到一个列表或图表,其中显示 a) 分支中有未完成的更改(即之后没有合并到主干)和 b)所有修订版 main.c
(在任何分支)被改变了。
是否有工具可以最好地显示在漂亮的图表或列表中?这可以基于每个文件,但如果我们能够获得所有提交修改尚未合并到主干的文件的列表,那就更好了。
如果在单个文件或目录上使用,由 TortoiseSVN 创建的修订图很接近,但例如不显示合并。
我意识到这需要扫描整个存储库,因为在 svn repo DB 中无法直接获得此信息。
最佳答案
假设您在存储库中启用了合并跟踪,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
处可用- 希望已经在你的道路上。
关于svn - 显示在任何 SVN 分支中哪些文件已更改但尚未合并到主干,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49431556/