显示哪些文件在任何SVN分支中已更改但尚未合并到主干

时间:2018-03-22 14:44:03

标签: svn merge tortoisesvn branch

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

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

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

TortoiseSVN创建的修订图如果在单个文件或目录上使用,则会关闭,但是例如不显示合并。

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

1 个答案:

答案 0 :(得分:2)

假设您的仓库中启用了合并跟踪,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 - 希望已经在您的路径上。