【问题标题】:svn post-commit hook : "error resolving case" & "skipped \\ip-address\users\myDir"" messagessvn 提交后挂钩:“错误解决案例”和“跳过 \\ip-address\users\myDir”消息
【发布时间】:2011-07-18 11:24:36
【问题描述】:

我在 Windows 上安装了 Collabnet SVN 服务器。此外,我实现了一个提交后挂钩,当我从工作副本“A”提交到存储库时,它应该更新项目的工作副本“B”。工作副本“B”位于网络驱动器 [H -> \\ip-address\users\myDirB ]:

  • 现在,当我在我的 post-commit 钩子中指定下面的代码行并从工作副本“A”提交变更集时:

SET WORKING_COPY=H:/myDirB

我得到错误: svn post-commit hook:“错误解决案例”

  • 或者,如果我指定: SET WORKING_COPY=//ip-address/users/myDirB

我得到错误:

"跳过\ip-address\users\myDirB""

我做错了什么?干杯。

请注意: * Collabnet Subversion 服务器安装在我的 C: 驱动器上

  • 它作为对网络目录具有完全权限的服务帐户运行我想通过提交后挂钩自动更新,即 - \\ip-address\users\myDirB*

  • 我还将路径 \\ip-address\users\myDirB 映射到 H: 驱动器

【问题讨论】:

    标签: windows svn


    【解决方案1】:

    SET WORKING_COPY=//ip-address/users/myDirB

    无法工作,因为 cmd.exe 需要一个普通路径(驱动器号、冒号、相对路径)。它不能处理其他路径,如 UNC 或 ip 地址。它必须有一个驱动器号。

    SET WORKING_COPY=H:/myDirB

    但是这不起作用,因为您将 H: 映射为您登录的用户。但是钩子脚本作为你的 svn 服务器运行的用户运行,即作为服务帐户。并且服务帐户没有映射了 H: 驱动器。

    【讨论】:

      【解决方案2】:

      我建议不要使用提交后挂钩来执行此操作。正如你所发现的那样,它将永远脆弱而复杂。

      您应该设置一个持续集成构建来监控 svn 存储库,然后在需要时部署代码。分离这些问题将使您在未来免去麻烦,提供通知团队(IM、电子邮件或仪表板)的简便方法,并在何时/如果希望进行任何自动化测试时为您提供帮助。

      【讨论】:

        【解决方案3】:

        我遇到的两个问题是 (1) 路径和 (2) 权限。我们的旧设置包括 Windows 2008 R2 上的 collabnet subversion server 1.5.6 和 apache 2.2(现在是 Win 2008 R2 上的 wandisco 1.7.2 / apache2.2)。

        最初,我将路径作为映射驱动器,并将 subversion 和 apache 服务作为本地系统帐户运行。所以,我们有类似的东西:

        SET WORKING_COPY=X:\the\path\to\theworkingcopy
        

        通过 CLI 运行它很好,但是通过随后的钩子提交和执行会导致类似的日志消息

        Error resolving case of 'X:\the\path\to\theworkingcopy'
        

        因此,我将 WORKING_COPY 更改为使用 UNC 路径,例如:

        \\servername\DRIVELETTER$\the\path\to\theworkingcopy
        

        仍然是同样的问题,但我认为服务(两者)需要以网络权限运行,所以我将服务“登录为”更改为 svn 服务器和 apache 的域帐户。

        我遇到的另一个问题是为服务的“登录身份”用户设置域。我使用了域用户,但对域使用了通配符,例如".\用户"

        然后它就起作用了。

        就这是一个脆弱的解决方案而言,我同意 CI 是一种更好的方法。尽管我们在 UNC 上的 svn 更新已 (1) 记录在案并且 (2) 现在可以工作并且 (3) 它在不久的将来不太可能改变 - 正如 thekbb 所指出的 - 它并没有分离关注点。

        【讨论】:

        • 如何设置服务“登录身份”?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 2011-11-06
        相关资源
        最近更新 更多