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

mac*_*ost 14 svn diff merge revisions

所以在SVN你可以做以下事情:

svn merge -r555:558
svn diff -c551
Run Code Online (Sandbox Code Playgroud)

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

svn merge -r555:558, 592:594
svn diff -c551, 557, 563
Run Code Online (Sandbox Code Playgroud)

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

svn merge -r555:558
svn merge -r592:594
Run Code Online (Sandbox Code Playgroud)

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

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

Ed *_*ner 19

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

svn merge -c 551, 557, 563
svn merge -r 555:558 -r 592:594
Run Code Online (Sandbox Code Playgroud)

但是svn diff似乎不支持多个非顺序修订.

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