1

メッセージなしでコミットを拒否する単純なpre-commitフックスクリプトを設定しようとしています。VisualSVN Server 2.5.8を使用し、.batファイルを指すpre-commitフックを追加しました。

ファイルは実行されますが、REPOS-PATHおよびTXN-Nameのパラメーターは空です。私のスクリプトでは、%0をファイルに記録しようとしましたが、これはスクリプトへのパスのみを返していることがわかります。したがって、何らかの理由でVisualSVNサーバーはこれらのパラメーターを渡しません。何が間違っている可能性がありますか?

テストのコード:

@echo off

setlocal enabledelayedexpansion

set REPOS=%1
set TXN=%2

set SVNLOOK="%VISUALSVN_SERVER%\bin\svnlook.exe"


echo "repos %REPOS%." >> C:\Repositories\Hooks\test.log
echo "txn %TXN%." >> C:\Repositories\Hooks\test.log

exit 0

コミット後、test.logには次のものが含まれます。

「レポ」

「txn。」

4

2 に答える 2

0

フック スクリプトは空の環境で実行されます。変数は設定されてい%PATH%ません%VISUALSVN_SERVER%。スクリプトで定義されていない環境変数に依存せずに、完全なパスを指定する必要があります。svnlook.exe

不足%REPOS%している とについては%TXN%、フックで次を使用します。

set "REPOS=%~1"
set "TXN=%~2"
于 2013-03-21T13:18:50.860 に答える