Как я могу использовать хук начала фиксации в TortoiseSVN для настройки пользовательской записи журнала? - PullRequest
0 голосов
/ 12 сентября 2008

Я бы хотел автоматизировать TortoiseSVN как часть процесса фиксации. В частности, я хотел бы динамически создать запись в журнале для диалога фиксации.

Я знаю, что могу запустить диалог фиксации либо из командной строки, либо щелкнув правой кнопкой мыши папку и выбрав svncommit.

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

Когда я пытаюсь использовать командную строку, я использую параметр / logmsgfile, но, похоже, это не дает никакого эффекта.

Я использую tortoisesvn 1.5.3.

Ответы [ 2 ]

2 голосов
/ 12 сентября 2008

Похоже, это было мое собственное недопонимание API, вызвавшее проблему.

Решение:
1) Я добавил скрипт запуска коммита в TortoiseSVN, используя графический интерфейс hooks в области настроек в меню правой кнопки мыши.

2) Сценарий получает 3 фрагмента информации: PATH MESSAGEFILE CWD
Подробнее см .: Руководство
Они передаются в сценарий как аргументы командной строки - по какой-то причине я думал, что они были установлены как временные переменные среды.

Мой скрипт затем просто открывает файл, указанный во втором аргументе, и добавляет в пользовательский текст.

Когда появляется диалоговое окно фиксации, там появляется пользовательский текст.

3) Лучше всего, если tortoisesvn запускается из скрипта непосредственно в диалоге фиксации:
например [tortoiseproc / command: commit / path :. / closeonend: 1]
Крючки все еще называются.

1 голос
/ 12 сентября 2008

Если вам просто нужен статический шаблон, установите свойство tsvn: logtemplate.

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

GenerateLogMsg.exe > tmp.msg
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:. /logmsgfile:"C:\Documents and Settings\User\My Documents\Visual Studio Projects\Project\tmp.msg"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...