【问题标题】:post-commit hook, svn: E020024: Error resolving case of提交后钩子,svn:E020024:错误解决案例
【发布时间】:2013-04-04 09:45:03
【问题描述】:

我正在使用 VisualSVN Server 来管理源文件夹。它安装在 Windows XP 机器上,并且可以访问网络磁盘。

在这个名为W:的网盘上,我这样对一个文件夹进行了checkout:

svn checkout https://server:443/svn/Project W:\Project --username=user --password=pass

我现在可以使用以下命令更新此文件夹:

svn update W:\Project

问题是:

我想添加一个运行此命令的提交后挂钩:

svn update W:\Project

但是当我提交时,出现了这个错误:

At revision: 123
post-commit hook failed (exit code 1) with output:
svn: E020024: Error resolving case of 'W:\Project'

有什么想法吗?我不知道这是否是一个好习惯,我的目标是将项目的副本保存在 svn 服务器之外的另一个磁盘上并备份。

【问题讨论】:

  • 您是否尝试使用 post-commit 钩子提交您想要 svn update 的同一个工作副本?完整的钩子代码是什么?
  • 您可能想考虑改用Continuous Integration 服务器。运行 TeamCityJenkinsHudson(例如)可以让您执行此操作(以及更多),而无需将挂钩添加到 SVN。

标签: svn visualsvn-server svn-hooks post-commit-hook


【解决方案1】:

W: 驱动器可能未映射到脚本运行的环境中。所有挂钩脚本都在未设置环境变量的情况下运行。您需要明确指定文件共享的服务器名称或在脚本中映射网络驱动器。

【讨论】:

  • 未映射的驱动器号不是因为环境为空。这是因为服务没有映射驱动器,因为这是在交互式用户登录中完成的。
  • 映射的驱动器是按用户映射的,不能被“网络服务”等内置帐户访问。
【解决方案2】:

好的,实际上可以对提交后操作进行更新。问题是我尝试将我的存储库保存在网络文件夹中。 VisualSVN 服务的默认帐号是NTAUTHORITY\NetworkService,无法访问我的磁盘。所以我将用户更改为网络帐户,现在它可以正常工作了。

【讨论】:

    【解决方案3】:

    您是否正在使用要通过提交后挂钩脚本更新的同一工作副本?

    您不能svn update 使用提交后挂钩处理您正在处理的同一工作副本。它必须是单独的工作副本。您可以考虑使用svn export 命令代替svn update

    【讨论】:

    • 关于不能在提交后挂钩上完成的更新是正确的。但是我尝试过使用 export 并且我得到了完全相同的信息。似乎无法访问网络文件夹...我编辑我的问题
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多