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 回答