WindowsマシンでSVNプレコミットチェックを行うPerlスクリプトを書いていて、VisualSVNサーバーを使用しています。
コードは次のとおりです。
pre-commit.bat
C:\Perl\bin\perl.exe D:\Repositories\iCP\hooks\pre-commit.pl %1 %2
exit %ERRORLEVEL%
pre-commit.pl
#!/usr/bin/perl
use strict;
use warnings;
my $repos = $ARGV[0];
my $txn = $ARGV[1];
my $svnlook = "D:\\svnlook.exe";
my $hooks = "D:\\Repositories\\iCP\\hooks";
if(system("$svnlook log -t $txn $repos >$hooks\\res.txt"))
{
die "Unable to finish system(): $!\n";
}
....
基本的には、「svnlook ログ」の結果を res.txt にリダイレクトして、このファイルから読み取ることができるようにしたいと考えています。
しかし、TortoiseSVN からコミットすると、perl スクリプトが「System() を終了できません: 不適切な IO コントロール操作」で終了しました。何が問題なのかわかりません。
事前にご協力いただきありがとうございます。