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

标签 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 中无法直接获得此信息。

最佳答案

假设您在存储库中启用了合并跟踪,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/

相关文章:

svn - 如何使用 TortoiseSVN 用分支替换主干?

apache - 使用 Subversion 1.8+ 客户端提交时出现错误 "The server sent an improper HTTP response."

svn - 在 svn 中有没有办法只更改那些我没有在我的工作目录中修改过的文件?

git - 使用 merge 或 rebase 来维护一个部署分支

Java 和 YAML : how to parse multiple yaml documents and merge them to a single YAML representation?

tortoisesvn - 重新指向 tortoiseSVN 存储库

svn - 从旧的 Subversion 备份中恢复文件

svn - 如何与内部 svn 存储库共享自定义 Grails 插件?

r - 使用查找表更改数据框多列中的值

SVN 将一个 Repo 的分支合并到另一个 Repo 的主干中