0

我有一个编写为 .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

所有这些在我的本地机器上都运行良好,所以我相信一切在语法上都是正确的,而且这只是一个权限错误。有任何想法吗?

4

1 回答 1

1

Visual SVN 运行脚本,它是一个服务。因此,它确实使用安装该服务的任何用户帐户运行它。

您正在做的事情需要它似乎没有的权限。

你在域上运行吗?e: 是本地的、物理的驱动器还是网络映射?

于 2009-09-03T02:25:26.363 回答