これは、トランク内の何かが変更された場合、または何も変更されていない場合に異なるメッセージを出力する簡単なコード スニペットです。
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 関数は、トランクだけでなく、任意のリポジトリ ルート レベルのサブディレクトリで使用できることに注意してください。新しいタグやブランチを検出するのに非常に便利です。また、この関数は何度でも呼び出すことができることに注意してください。
注: これは、ソース ファイルが変更されたかどうかを実際にチェックするのではなく、リビジョンの変更されたディレクトリ リストにトランクが記載されているかどうかをチェックするだけです。一部のディレクトリまたはファイルの svn 属性が変更された可能性があります。