Настроить TortoiseMerge как внешний инструмент слияния для SVN?

StackOverflow https://stackoverflow.com/questions/2348692

  •  23-09-2019
  •  | 
  •  

Вопрос

Можно ли настроить TortoiseMerge (поставляется с TortoiseSVN) как внешний инструмент слияния, который появляется при возникновении конфликта слияния с использованием командной строки "svn merge"?Я попытался установить мою переменную окружения "SVN_MERGE" так, чтобы она указывала на TortoiseMerge.exe, но, похоже, этого недостаточно.TortoiseMerge просто появляется, когда я выбираю "l" (для запуска внешнего инструмента), спрашивая меня, какие файлы я хочу объединить.Я хочу, чтобы эта информация была введена в инструмент автоматически.

Есть какие-нибудь идеи?

Это было полезно?

Решение

Я не знаю, какую версию Subversion вы используете, поэтому я попытаюсь обратиться к информации в самой последней версии Документация по подрывной деятельности, для 1.6.(На этой странице они добавляют, что "если вы добавляете закладки или ссылаетесь на определенные разделы, эти ссылки могут стать недействительными при продолжении разработки". Но стабильной версии 1.6 не существует.)

Во-первых, плохие новости:

Чтобы использовать инструмент слияния, вам необходимо либо установить переменную среды SVN_MERGE , либо определить инструмент слияния-cmd параметр в вашей Subversion конфигурационный файл (смотрите раздел под названием “Параметры конфигурации” для получения более подробной информации).Subversion передаст четыре аргумента инструменту слияния: базовая редакция файла, редакция файла, полученного с сервера в рамках обновления, копия файла, содержащего ваши локальные изменения, и объединенная копия файла (который содержит маркеры конфликта).Если ваш инструмент слияния ожидает аргументы в другом порядке или формате, вам нужно будет написать сценарий-оболочку для Subversion для вызова.

Немного лучшей новостью является то, что Subversion в некоторой степени предвосхитила ваш вопрос.Смотрите раздел Использование внешних инструментов дифференцирования и слияния;существуют шаблоны оболочек внешних инструментов слияния.

В вашем конкретном случае, Документация по TortoiseMerge имеет приложение объясняющий, как использовать его из командной строки.Основными переключателями являются /base, /mine, и /theirs, но вы можете захотеть использовать больше (в конце концов, вы пишете свой собственный скрипт-оболочку).TortoiseMerge также допускает "упрощенную форму" команды:

TortoiseMerge BaseFilePath MyFilePath TheirFilePath

Способ передать результаты вашего слияния обратно в Subversion - это записать объединенный файл в стандартный вывод и вернуть соответствующее значение.Эта информация размещена на видном месте в шаблонах оболочки в руководстве Subversion.

Другие советы

Создайте bat-скрипт, который выглядит следующим образом:

"c:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe" /base:"%1" /theirs:"%2" /mine:"%3" /merged:"%4"

Затем установите переменную среды SVN_MERGE в этот скрипт bat:

set SVN_MERGE=c:\bin\svnmerge.bat
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top