我有一个编写为 .NET 控制台应用程序并在 VisualSVN 服务器上运行的 SVN 挂钩,这会导致一些问题。每次我尝试提交(使用 Tortoise 远程或通过命令行本地)时,我都会得到响应“访问被拒绝”。查看 VisualSVN 的事件查看器,出现以“Could not MERGE resource...”开头的错误,然后是另一个重复“拒绝访问”的错误。
如果禁用了 pre-commit 钩子,则提交可以正常进行,因此我认为这与存储库权限无关。预提交挂钩的路径绝对正确,因此 SVN 正在寻找正确的位置。我还尝试为我的帐户授予本地管理员权限,并在带有钩子应用程序的文件夹上明确授予它“读取和执行”权限。我可以直接运行 PreCommit.exe 控制台应用程序,因此它肯定能够在机器上执行。
这是我在 repo 的 hooks 文件夹中的 pre-commit.cmd 文件:
E:\PreCommitHooks\PreCommit.exe %1 %2
所有这些在我的本地机器上都运行良好,所以我相信一切在语法上都是正确的,而且这只是一个权限错误。有任何想法吗?