Есть ли способ объединить svn diff или svn через несколько непоследовательных версий одновременно? - PullRequest
14 голосов
/ 22 апреля 2010

Так что в 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 Ответ

19 голосов
/ 25 мая 2010

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

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

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

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

...