繁体   English   中英

win apache svn post-commit update挂起

[英]win apache svn post-commit update hangs

我正在使用一个svn apache模块来管理我在网络服务器上的存储库和tartoise svn以便与它进行交互。

每当我提交一些东西时,我想自动更新服务器上的工作副本,这样我就不必在服务器上手动安装远程桌面并手动运行更新。

为此我在repo上创建了一个简单的post-commit钩子

echo %username% >> C:\debug.txt
svn update F:\wampserver64\www\netcity\maintenance\ >> C:\debug.txt

问题是我不能再对回购进行任何更改。 提交刚达到100%后挂起,ok按钮显示为灰色。 之后,提交的文件处于锁定状态,无论是客户端还是服务器,我必须在两个工作站上进行清理和更新。 echo%username%用于调试目的。 我怀疑这可能是一个权限问题,所以我想用svn运行的用户名。 这是输出:

XIBM$ 
Updating 'F:\wampserver64\www\netcity\maintenance':

XIBM $甚至不是用户名。 它是服务器的名称。 如果运行manualy,.bat挂钩运行正常并返回一个reaonable输出:

liviu.gelea 
Updating 'F:\wampserver64\www\netcity\maintenance':
At revision 19.

我已经尝试为XIBM /用户,身份验证用户,管理员,访客以及在服务器上移动但几乎没有运气的所有内容设置完全权限。 所以任何帮助都是非常苛刻的。

正如我多次提到的,不要使用post-commit脚本执行此操作。 当该提交后脚本正在运行时,用户被锁定并等待该提交完成。 在这段时间里,他们对他们的计算机,Subversion和你生气。

相反,使用像Jenkins这样的持续集成引擎来处理这个问题。 Jenkins设置简单,并且会消除提交后脚本的痛苦。

此外,Jenkins可以保留所有提交的完整历史记录,以及服务器更新时发生的情况,如果出现问题,可以通过电子邮件发送给您。 更好的是,你可以使用像Promote Build插件这样的东西来挑选你真正想要部署到服务器的提交。

什么帐号是svn运行? 我推荐一些东西

  1. 在更新中指定--username ,您可能不希望添加svn正在运行的本地服务帐户,以便能够访问repo
  2. 添加--accept theirs-full以在发生冲突时始终获取服务器副本
  3. 一旦你被拨入,你可能也会想要 - --quiet

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM