Извлечение многострочного журнала коммитов в SVN pre commit hook - PullRequest
0 голосов
/ 19 октября 2018

Я пытался получить полный комментарий коммита в pre commithook.Ниже приведен мой код,

set REPOS=%1
set TXN=%2 
SET comment
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=%comment%%%g)

, но я могу получить только последнюю строку журнала.Есть ли способ получить полный журнал (многострочный)?

1 Ответ

0 голосов
/ 19 октября 2018

У вас по существу проблема с отложенным расширением.Это одна из тех странных вещей, связанных с тем, как пакетные файлы расширяют переменные перед выполнением строки кода.Таким образом, у вас есть два варианта решения этой проблемы.

Включите отложенное расширение и используйте восклицательные знаки для ссылки на ваши переменные.

setlocal enabledelayedexpansion
FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (SET comment=!comment!%%g)

Используйте небольшую хитрость с командой CALL.Вы удваиваете символы процента и используете команду CALL, которая дает вам две фазы расширения переменной.

FOR /F "tokens=*" %%g IN ('svnlook log %REPOS% -t %TXN%') do (CALL SET comment=%%comment%%%%g)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...