同様の問題が発生しましたが、SVNをホストしているLinuxサーバーに問題がありました。ここから手がかりを得て、Windowsシステムに合わせて変更できるかもしれません。
POST_COMMIT
#!/bin/sh
wget http://localhost/update_svn.php
update_svn.php
<?php
$output = shell_exec('/media/disk3/velsvn/projects/hooks/svn_update_step1.sh');
echo "<pre>$output</pre>";
?>
svn_update_step1.sh
ssh -i /media/d/mykey/id_rsa velsvnuser@localhost /media/disk3/velsvn/projects/hooks/svn_update_step2.sh
svn_update_step2.sh
#!/bin/sh
cd /media/disk3/velsvn/projects/hooks
rm -f filelist
rm -f log
whoami >> log
svnlook dirs-changed /media/disk3/velsvn/projects/ | sed "s/^..//" | awk '{ print substr( $0, 9 ) }' >> /media/disk3/velsvn/projects/hooks/filelist; sed -i -e 's#^#/media/disk2/www/htdocs#' filelist; cat /media/disk3/velsvn/projects/hooks/filelist | xargs /usr/bin/svn up -N >> /media/disk3/velsvn/projects/hooks/log
注:
1。/ media / d / mykey / id_rsaは、SSHアクセス用に生成されたキーです。これにより、システムは、ユーザーがSVNに接続し、シェルスクリプトを実行するためのパスワードを提供するのを待たないようにします。2. POST-COMMITファイルとシェルファイルsh1およびsh2には、実行できるように+xmodが指定されています。
この投稿にコメントして、見栄えの良いソリューションを提供してください。私が今知っているのは、このソリューションが機能することだけです:)