Есть ли какой-либо способ слияния 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 для автоматизации процесса.