変更のログをコンパイルしてからユーザーに電子メールを送信する、実行速度の遅いバッチ ファイルがあります。TortoiseSVN でユーザーのコミットが遅くならないようにしたいと思います。
@ECHO OFF
SET REPOS=%1
SET REV=%2
SET DIR=%REPOS%/hooks
SET PATH=%PATH%;%DIR%;C:\Utils
SET WORKING_COPY=C:\path\to\local\copy\
SET SITENAME=MySiteName
SET SMTP_SERVER=11.11.11.11
SET EMAIL_TO=my@email.email
SET EMAIL_FROM=my@email.email
SET SUBJECT=SVN Update - %SITENAME% - rev %REV% - %REPOS%
svn cleanup %WORKING_COPY%
svn update %WORKING_COPY%
ECHO The following changes were made to the code: > %DIR%/email.txt
ECHO. >> %DIR%/email.txt
svn log %WORKING_COPY% -v -r "%REV%" >> %DIR%/email.txt
svn diff %WORKING_COPY% -c "%REV%" --no-diff-deleted >> %DIR%/email.txt
sendEmail -s %SMTP_SERVER% -t %EMAIL_TO% -f %EMAIL_FROM% -u "%SUBJECT%" -o message-file=%DIR%/email.txt
これが遅いことに気づいたので、別のファイル「email-changes.bat」に移動し、このバッチを非同期で呼び出す簡単なバッチを作成しました。
@ECHO OFF
#START %1\hooks\email-changes.bat %1 %2
echo 'fired' > %1\hooks\test.log
「START」行をコメントアウトすると、実行されてすぐに終了します。コメントを削除すると、完了するまでに時間がかかります。これにより、ポストコミットが SVN にすばやく戻ることができるはずだと考えました。
コードが Subversion でハングしないようにする方法はありますか?