Я не знаю, какую версию Subversion вы используете, поэтому я попытаюсь обратиться к информации в самой последней версии документации Subversion , для 1.6. (Они добавляют на этой странице, что «если вы добавляете в закладки или ссылаетесь на определенные разделы, эти ссылки могут быть признаны недействительными в результате продолжения разработки». Но стабильной версии для 1.6 нет.)
Во-первых, плохие новости :
Чтобы использовать инструмент слияния, вам нужно
либо установите среду SVN_MERGE
переменная или определить merge-tool-cmd
вариант в вашем Subversion
файл конфигурации (см. раздел
называется «Параметры конфигурации» для
подробнее). Subversion пройдет
четыре аргумента инструмента слияния:
БАЗОВАЯ доработка файла,
ревизия файла, полученного от
сервер как часть обновления, копия
файла, содержащего ваш локальный
правки и объединенная копия файла
(который содержит маркеры конфликта). Если
ваш инструмент слияния ожидает аргументы
в другом порядке или формате, вы будете
нужно написать скрипт-обертку для
Subversion для вызова.
Немного лучшая новость в том, что Subversion несколько предвосхитила ваш вопрос. См. Раздел Использование инструментов внешнего дифференцирования и слияния ; существуют шаблоны внешних оболочек инструмента слияния.
В вашем конкретном случае документация TortoiseMerge содержит приложение , объясняющее, как использовать его из командной строки. Основными переключателями являются /base
, /mine
и /theirs
, но вы можете захотеть использовать больше (в конце концов, вы пишете свой собственный скрипт-обертку). TortoiseMerge также допускает «упрощенную форму» команды:
TortoiseMerge BaseFilePath MyFilePath TheirFilePath
Способ сообщить результаты вашего слияния обратно в Subversion - записать объединенный файл в стандартный вывод и вернуть соответствующее значение. Эта информация размещена на видном месте в шаблонах оболочки в руководстве Subversion.