【问题标题】:Cannot commit to SVN after moving Subversion Edge to new server将 Subversion Edge 移动到新服务器后无法提交到 SVN
【发布时间】:2015-12-08 13:30:38
【问题描述】:

我可以结帐、浏览历史记录等...但是当我尝试使用 Tortoise SVN 提交任何更改时,我收到一个错误:

提交失败(详情如下):

提交被 pre-commit 钩子(退出代码 255)阻止并输出:

系统找不到指定的路径。

如果您想解除锁定,请使用“检查修改”对话框或存储库浏览器。

这是在我们设置新服务器并从旧服务器复制存储库数据之后发生的。服务器上的错误日志包含:

[2015 年 12 月 8 日星期二 13:23:29.696220] [dav:error] [pid 9044:tid 920] [client 192.168.16.150:59995] 无法合并资源“/svn/Phil/!svn/txn/2501 -1w2" 转换为 "/svn/Phil"。 [500, #0]

[Tue Dec 08 13:23:29.696220 2015] [dav:error] [pid 9044:tid 920] [client 192.168.16.150:59995] 提交被预提交挂钩(退出代码 255)阻止,输出为:\ n系统找不到指定的路径。\r\n [500, #165001]

[2015 年 12 月 8 日星期二 13:23:29.789973] [dav:error] [pid 9044:tid 920] [client 192.168.16.150:59997] 无法获取资源信息。 [404, #0]

[2015 年 12 月 8 日星期二 13:23:29.789973] [dav:error] [pid 9044:tid 920] [client 192.168.16.150:59997] 命名事务不存在。 [404, #175002]

有什么建议吗?

【问题讨论】:

  • 你的存储库中有一个预提交钩子,它似乎在搜索一个不再存在的文件?
  • 检查过 svn 是否对您定义的存储库目录具有写入/读取权限?同样通过第二个错误日志(提到预提交挂钩),检查挂钩是否可执行。通过钩子输出,您的 svn 尝试读取的路径似乎存在一些冲突信息。第 3 和第 4 个错误日志相同。
  • 我设法找到了编辑预提交挂钩的选项,似乎 CSVN 的路径在那里被硬编码。当我安装软件时,我把它放在 C:\Program Files\CSVN 而不是 C:\CSVN,所以我认为这是导致问题的原因。
  • 不幸的是,它不允许我编辑钩子脚本:“钩子编辑器默认禁用。有权访问文件系统的人可以在 security.properties 中使用 hook.script.editor.enabled 启用此功能=true 然后重新启动应用程序。”我需要在哪里添加这个命令?
  • 我设法使用记事本编辑了 pre-commit.cmd 文件。似乎已经解决了问题。

标签: svn tortoisesvn subversion-edge


【解决方案1】:

原来这是因为新服务器上的软件安装到了与原始服务器上不同的文件夹中,并且文件夹名称被硬编码到存储库中的预提交挂钩脚本中。

编辑在 hooks 子文件夹中找到的 pre-commit.cmd 并更正路径修复了问题。

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2014-12-18
    • 2015-05-21
    • 1970-01-01
    • 2011-03-15
    • 2010-09-26
    相关资源
    最近更新 更多