Вот небольшой фрагмент кода, который выводит разные сообщения, когда что-то в транке изменилось или ничего не имеет:
set repos=%~1
set rev=%~2
call :did_it_change "%repos%" "%rev%" "trunk"
if %ERRORLEVEL%==1 (
echo trunk changed
) else (
echo no changes in trunk
)
exit /B 0
:did_it_change
set repos=%~1
set rev=%~2
set dir=%~3
set found=0
for /F "delims=/" %%p in ('svnlook dirs-changed "%repos%" -r %rev% 2^>NUL') do call :check "%%p" "%dir%"
exit /B %found%
:check
set check_string=%~1
set must_match=%~2
if "$%check_string%" == "$%must_match%" set found=1
exit /B 0
Обратите внимание, что: функция did_it_change может использоваться с любым подкаталогом корневого уровня репозитория, а не только с транком. Очень полезно, чтобы обнаружить новые теги или ветви. Также обратите внимание, что функцию можно вызывать любое количество раз.
Примечание: это на самом деле не проверяет, были ли изменены исходные файлы или нет - оно просто проверяет, упоминается ли trunk в списке измененных каталогов ревизий. Возможно, это изменение атрибутов svn некоторых каталогов или файлов.