1

フックのポストコミット テンプレートは、postcommitlog.exe を呼び出して MyFile_LOG.txt を作成し、それに 3 つの引数を書き込みます。リポジトリとトランザクションは postcommit テンプレートから渡されます。

問題は、TurtoiseSVN でファイルをコミットした後、ログが作成されないことです。リポジトリにファイルを作成する権限がないか、コードにエラーがあるようです。

私のコードはローカルで動作します。デバッグしてランダムな引数を渡すと、ローカル マシンにログ ファイルが作成されます。しかし、SVNフックでは機能しません。

テンプレート

\\myserver\e$\Repositories\CONRAD\hooks\postcommitlog.exe %1 %2

私のプログラム

using System;
using System.IO;

namespace postcommitlog
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            string repositories = args[0];
            string transaction = args[1];

            const string LOG_PATH = @"\\myserver\e$\Repositories\CONRAD\hooks\MyFile_LOG.txt";

            FileInfo fileInfo = new FileInfo(LOG_PATH);

            File.AppendAllText(LOG_PATH, "Repositories " + args[0]
                + "\t Transaction " + args[1] + "\t Date " + DateTime.Now.ToString("MMM ddd d HH:mm yyyy") + Environment.NewLine);
        }
    }
}
4

1 に答える 1

1

間違いは、テンプレートを使用するのではなく、テンプレートから BAT ファイルを作成することになっていたことです。テンプレートは何もしません。それはテンプレートです。BAT ファイルは SVN によって実行され、スクリプトが実行されます。

詳細はこちら:

http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks

于 2012-09-05T15:46:25.190 に答える