Решение SVN слияния рекурсивно отложенных конфликтов - PullRequest
4 голосов
/ 30 ноября 2008

У меня есть ветка разработчика, которая не была затронута некоторое время. Я слил транк в него, чтобы интегрировать множество исправлений / изменений в основную строку, так как она была разветвлена, но теперь у меня много мелких конфликтов (merge-left / merge-right).

Я хочу, чтобы последняя редакция транка использовалась для разрешения каждого конфликта. Могу ли я выполнить команду, которая автоматически разрешит все конфликты под рабочей копией в одном направлении (право на объединение должно использоваться для всех конфликтов)?

EDIT: Как указано в комментариях, я попытался вернуться, а затем запустить svn merge с параметром --accept, только, по-видимому, такого нет в SVN 1.0. Все еще ищу решение.

Ответы [ 5 ]

7 голосов
/ 30 ноября 2008

Я думаю, что вы можете использовать опцию "--accept itss-full" при запуске команды svn merge. Это должно делать то, что вы хотите ...

3 голосов
/ 19 сентября 2011
svn --version
svn, version 1.6.17 (r1128011)

svn resolve -R --accept='theirs-full' <path>
3 голосов
/ 30 ноября 2008

Как сказал abigagly, вы должны использовать --accept theirs-full при выполнении слияния. Если вы уже выполнили слияние и хотите начать сначала, вы можете сначала использовать svn revert -R, чтобы начать заново.

Опция --accept является новой в SVN 1.5 вместе с интерактивной поддержкой слияния.

0 голосов
/ 11 мая 2010

Хорошо, у меня есть план, и я думаю, что он объясняет большинство моих проблем - (получено из моего поста пользователям @ subversion ...)

Я думаю, что мы столкнулись со следующими проблемами, которые усугубили ситуацию:

  • вишневые пики слияния + слияния на уровнях ниже корня (все разрешены, но они могут сделать последующие слияния более сложными)
  • мы предполагали, что завершение команды слияния означало, что все изменения объединены (не проверялось дважды с помощью mergeinfo --show-revs)
  • возможных ошибок с более ранними клиентами (1.5 или ранее 1.6). У нас есть много систем Ubuntu и Debian, и мы изначально не знали о сайте обновлений wandisco. Итак, мы упустили простой способ оставаться в курсе. Сейчас мы быстро внедряем 1.6.11

PUSH процесс:

  1. svn merge --reintegrate --accept отложить путь URL-ветви к рабочему пространству
  2. svn mergeinfo URL-ветка path-to-workspace --show-revs приемлемый> elitable_revs.txt
  3. повторять до тех пор, пока не останется ничего подходящего

Процесс PULL: тот же шаблон, но за вычетом --reintegrate

0 голосов
/ 30 ноября 2008

Я думаю, что TSVN мог бы сделать это, если вы выполните «Проверка на наличие изменений», которая покажет вам все файлы, включая конфликтующие, выделит их все, а затем выберет «решить, используя их».

Не уверен, что TSVN имеет отношение к вашей платформе, или это именно то, что вы хотите сделать, но это может быть полезно ...

...