Subversion: сбой обновления при возникновении конфликтов? - PullRequest
4 голосов
/ 29 августа 2008

Есть ли способ сказать Subversion "обновить / объединить, если это не вызовет конфликт"?

Я знаю, что вы можете использовать --dry-run / status -u для проверки перед запуском обновления, но у меня часто есть другие, запускающие обновления и получающие неработающие веб-страницы, потому что они не замечают строку "C index.php".

Я также заметил, что svn, похоже, не слишком недоволен конфликтами - он по-прежнему говорит «обновлено до версии бла» и выходит из нуля, независимо от конфликтов. Таким образом, я должен проанализировать построчный вывод, чтобы обнаружить их. Конечно, есть лучший способ?

Ответы [ 6 ]

3 голосов
/ 03 октября 2008

Вы можете использовать параметр --accept, чтобы указать, что должно произойти при возникновении конфликта:

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')

См. Также страницу интерактивного разрешения конфликтов в svnbook

1 голос
/ 29 августа 2008

Вы можете использовать параметр --diff3-cmd, чтобы указать, какой инструмент слияния использовать (обычно diff3 из diffutils).

1 голос
/ 29 августа 2008

@ jsight: TortoiseSVN великолепен, но я в основном разрабатываю в среде * NIX, без X. Поэтому я обычно использую (ограничиваясь) командную строку.

В соответствии с вашим предложением сценария, это то, над чем я сейчас работаю - вот почему меня раздражает, что я не могу просто проверить $ ?. Прямо сейчас я пропускаю «вывод в файл» и использую канал, но в остальном именно то, что вы описываете.

1 голос
/ 29 августа 2008

Возможно, лучше использовать графический инструмент? Или напишите скрипт для обновления, который перенаправляет вывод в файл и в конце выдает «cat svnupdate.log | grep« ^ C »», чтобы показать вам какие-либо конфликты?

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

0 голосов
/ 03 октября 2008

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

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

Вы также можете использовать сценарий предварительной фиксации для поиска маркеров конфликтов в файлах и предотвращения фиксации, когда они присутствуют.

...