Есть ли какой-либо способ слияния svn diff или svn в нескольких последовательных версиях сразу?

Итак, в 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

но для diffs это просто приведет к множественным различиям (и это немного малооптимально для слияний, поскольку вы можете получить конфликты из вещей, которые могут быть просто удалены в последующих версиях).

Итак, мой вопрос: есть ли какой-либо способ, используя либо SVN или SVN в сочетании с командами Linux, чтобы выполнить истинный, не последовательный, многорежимный diff и/или слияние?

Ответы

Ответ 1

Вы можете объединить несколько ревизий в одну команду (по крайней мере, в версии 1.6):

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

однако svn diff, похоже, не поддерживает несколько несекретных версий.

Чтобы получить кумулятивный патч, вы можете получить разницу по отдельности, а затем использовать комбинацию-diff, чтобы объединить их вместе один за другим. Это не идеально, но вы можете написать script для автоматизации процесса.