是否有任何方法可以同时在多个非顺序修订中进行svn diff或svn合并?

时间:2010-04-22 15:54:56

标签: svn merge diff revisions

所以在SVN中,您可以执行以下操作:

svn merge -r555:558
svn diff -c551

但是(据我所知)没有办法:

svn merge -r555:558, 592:594
svn diff -c551, 557, 563

对于合并,您始终可以按顺序执行多个命令:

svn merge -r555:558
svn merge -r592:594

但是对于差异这样做只会导致多个差异(对于合并来说它也有点次优,因为你可以从以后版本中可能被删除的东西中获得冲突)。

所以,我的问题是......有没有办法,使用SVN本身或SVN结合Linux命令,做一个真正的,无顺序的,多修订版差异和/或合并?

1 个答案:

答案 0 :(得分:19)

您可以在一个命令中合并多个修订版(至少在1.6中):

svn merge -c 551, 557, 563
svn merge -r 555:558 -r 592:594

然而,svn diff似乎不支持多个非顺序修订。

要获得累积补丁,您可以单独获取差异,然后使用combine-diff将它们逐个合并在一起。它并不理想,但您可以编写一个脚本来自动化该过程。