为什么在检查 svn 中是否存在分支时会出现身份验证错误?

Why do I get an authentication error when checking if a branch exists in svn?

当有人提交时,我需要确定将其添加到我们内部版本控制器中的哪个项目。其中一个因素是是否创建了某个分支。

我有函数:

private static string SVN(字符串命令) { StringBuilder 输出 = new StringBuilder(); 进程 procMessage = new Process();

    //Start svnlook.exe in a process and pass it the required command-line args.
    procMessage.StartInfo = new ProcessStartInfo(
        @"C:\Program Files\VisualSVN Server\bin\svn.exe",
        command
    );
    procMessage.StartInfo.RedirectStandardOutput = true;
    procMessage.StartInfo.UseShellExecute = false;
    procMessage.Start();

    //While reading the output of svn, append it to the stringbuilder then
    //return the output.
    while (!procMessage.HasExited)
    {
        output.Append(procMessage.StandardOutput.ReadToEnd());
    }

    return output.ToString();
}

正在调用的是:

                    string nextRelease = SVN("ls https://server:port/svn/repo/branches/branchname");

然后检查nextRelease是否为空。 这适用于我本地存储库上的本地 PC,但是当我在服务器上安装提交挂钩时,出现如下错误:

Error: svn: E170013: Unable to connect to a repository at URL 'https://server:port/svn/repo/branches/branchname'  
Error: svn: E175013: Access to '/svn/repo/branches/branchname' forbidden  

SVNLook 没有提供我能找到的信息,并且用户大概是 SVN 用户,因此它可以访问 SVN。

我错过了什么?

运行 svn.exe 客户端的用户帐户无权访问 https://server:port/svn/repo/branches/ 及其子项或 https://server:port/svn/repo/branches/branchname。仔细检查权限。

请阅读文章KB33: Understanding VisualSVN Server authorization