无法从钩子程序调用创建日志文件

时间:2012-09-05 14:25:50

标签: c# .net svn

我的钩子提交后模板调用我的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);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

错误在于我应该从模板创建BAT文件,而不是使用模板。模板什么都不做,它就是这样的:一个模板。 BAT文件由SVN运行,然后运行脚本。

更多信息:

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

答案 1 :(得分:0)

您可能遇到了权限问题。有一个示例说明如何使用凭据访问共享文件夹here