微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – Subversion post-commit hook更新’staging’版本无效

我们的网络应用程序的暂存版本(它基本上是一个没有人工作的颠覆工作副本)存在于’/ apps / software’中.每个开发人员都在’〜/ apps / software’中拥有自己的工作副本.每次开发人员提交对存储库的更改时,我都希望使用一个简单的提交后挂钩脚本来更新登台副本.

听起来很简单吧?好吧,我一直在撞墙上的砖头比我应该的时间更长.钩子脚本(称为“post-commit”,位于/ svn / software / hooks,permissions = 777,user:group = apache:dev)如下(暂时忽略注释掉的位):

#!/bin/sh

/usr/bin/svn update /apps/software >> /var/log/svn/software.log

# REPOS="$1"
# REV="$2"
# AUTHOR=`/usr/bin/svnlook author -r "$REV" "$REPOS"`
# LOG=`/usr/bin/svnlook log -r "$REV" "$REPOS"`
# EMAIL="[email protected]"

# echo "Commit log message as follows:-
#
# \"${LOG}\"
#
# The staging version has automatically been updated.
#
# See http://trac/projects/software/changeset/${REV} for more details." | /bin/mail -s "SVN : software : revision ${REV} committed by ${AUTHOR}" ${EMAIL}

而已.日志文件具有相同的权限,user:group作为post-commit脚本,我甚至为登台副本提供了相同的用户:组和权限. Apache本身(我们正在使用apache subversion扩展)也在apache:dev下运行.我知道钩子正在被执行,因为上面注释的东西发送电子邮件工作正常 – 这只是更新命令不是.

我还可以使用以下命令执行不带环境变量的post-commit钩子脚本:

$env - /svn/software/hooks/post-commit /svn/software <changeset>

它运行正常,执行’svn update’没问题.我甚至尝试删除’>>’记录文件,但没有区别.

任何有关这方面的帮助将非常感谢……

解决方法:

您在此处仅向日志发送标准输出,而不是错误输出

/usr/bin/svn update /apps/software >> /var/log/svn/software.log

这样做是为了看出出了什么问题:

/usr/bin/svn update /apps/software >> /var/log/svn/software.log 2>&1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐