我在windows上安装了Collabnet SVN服务器。此外,我还实现了一个后提交钩子,当我从工作副本"A“提交到存储库时,应该更新项目的工作副本"B”。工作拷贝"B“驻留在网络驱动器H -> \ip地址\user\myDirB上
现在,当我在post-
中提交一个更改集。
SET WORKING_COPY=H:/myDirB
我得到错误: svn后提交钩子:“错误解决案例”
如果我指定:SET WORKING_COPY=//ip-address/users/myDirB,则为
我知道错误:
“跳过\ip-地址\用户\myDirB”
我做错了什么?干杯。
请注意:* Collabnet Subversion服务器安装在我的C:驱动器上
它作为一个服务帐户运行,具有网络目录上的全部权限,我希望通过后提交钩子自动更新,也就是说- \ip-address\users\myDirB*
。
发布于 2011-07-18 14:24:23
SET WORKING_COPY=//ip-address/users/myDirB
无法工作,因为cmd.exe需要一个简单的路径(驱动器号、冒号、相对路径)。它不能处理其他路径,如UNC或ip地址。它必须有一个驱动器字母。
集WORKING_COPY=H:/myDirB
但是,这不起作用,因为您将H:映射到您所登录的用户的某个位置。但是钩子脚本是在运行svn服务器的用户时运行的,即作为服务帐户运行。服务帐户而不是映射了H:驱动器。
发布于 2011-07-19 13:08:24
我建议不要使用post提交钩子来这样做。它将永远是脆弱的,复杂的--正如你所发现的。
您应该设置一个持续的集成构建,它监视svn回购,然后在需要时部署代码。将这些关注点分开将在将来避免您的头痛,提供通知团队(IM、电子邮件或仪表板)的简单方法,并在/如果希望进行任何自动化测试时帮助您解决问题。
发布于 2012-01-12 22:20:50
我遇到的两个问题是(1)路径和(2)权限。我们以前的设置包括collabnet subversion服务器1.5.6和Windows2008 R2上的apache2.2 (现在wandisco 1.7.2 /apache2.2在Win 2008 R2上)。
最初,我将路径作为映射驱动器,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仍然存在相同的问题,但我认为服务(对于这两种服务)都需要以网络特权运行,因此我将服务“登录As”更改为svn服务器和apache的域帐户。
我遇到的另一个问题是为服务“以用户身份登录”设置域。我使用了域用户,但域使用了通配符,例如".\theuser“
然后就成功了。
至于这是一个脆弱的解决方案,我同意CI是一个更好的方法。尽管我们对UNC的svn更新是(1)文档化的,(2)现在正在工作,(3)它不太可能在不久的将来改变--正如UNC所指出的--它并没有分离出不同的关注点。
https://stackoverflow.com/questions/6732154
复制相似问题