SVN差异列表提交

时间:2010-11-19 09:55:14

标签: svn

我正在寻找的是:

svn diff a b

重复所有文件:

svn blame b/file(手动检查衍射线上的转速)

svn log -rALL_REV_S_FOUND

E.g。

svn diff a b --list_commits

想要输出,例如

------------------------------------------------------------------------
rXXXXX | user | 2010-11-16 14:28:28 +0100 (Tue, 16 Nov 2010) | A line

Comment Q
------------------------------------------------------------------------
rXXXXZ | user | 2010-11-16 14:28:28 +0100 (Tue, 16 Nov 2010) | B line

Comment W
------------------------------------------------------------------------
rXXXXY | user | 2010-11-16 14:28:28 +0100 (Tue, 16 Nov 2010) | C line

Comment E

等......

为了澄清更多(Git和SVN因此根本不同。):

git log master..branch

可以读作

  

获取之间的更改列表   当前分支和主分支

2 个答案:

答案 0 :(得分:0)

尝试使用svn2cl,如果你将它提供给分支(或主干)上的修订版,它将生成你正在寻找的日志。

http://arthurdejong.org/svn2cl/

答案 1 :(得分:0)

svn mergeinfo --show-revs eligible ^/trunk ^/branches/foo这样的命令可以为您提供所需的信息。正如您在the manual中所看到的,这将打印一个修订号列表。您可以使用某些脚本将这些内容传递给svn log,以获得您正在寻找的输出类型。

但您可能会发现svn mergeinfo不如git log可靠。根据我对svn 1.6的体验,如果合并只发生在^/trunk^/branches/foo,那就没问题。如果您的合并更复杂(例如,在两个方向上,或从第三个分支到trunkfoo,或从/到子目录),svn可能会变得混乱,并且会夸大分支之间的差异(即它会告诉你修改还没有合并,实际上他们已经)。有时可以通过hacks like this来解决混淆。