svn提交的文件在服务器没有更新,SVN 钩子:禁止提交文件和服务器自动更新

SVN 钩子:禁止提交文件和服务器自动更新

南 靖男 9月 22, 2008

服务器端自动更新脚本,编辑仓库的 hooks/post-commit 内容如下:

#!/bin/sh

REPOS="$1"

REV="$2"

export LANG="zh_CN.UTF-8"

/usr/bin/svn update /var/www

脚本需要 +x 和设置属主(建议)才能执行:

sudo chown www-data:www-data hooks/post-commit

sudo chmod +x hooks/post-commit

/var/www 是 apache 的 htdocs 目录。另外,钩子脚本也是以 www-data 身份执行的,所以先使用:

sudo su www-data -c "svn co http://your.svn/path /var/www"

检出代码并保存认证信息。

禁止用户提交临时文件、图片缩略图文件等,编辑仓库的 hooks/pre-commit 内容如下:

#!/bin/sh

export LC_ALL=zh_CN.UTF-8

REPOS="$1"

TXN="$2"

TYPE="$3"

if test -z "$TYPE" ; then

TYPE="-t"

fi

Make sure that the log message contains some text.

SVNLOOK=/usr/bin/svnlook

look() {

$SVNLOOK "$@" "$TYPE" "$TXN" "$REPOS"

}

#if look log | grep '.' > /dev/null ; then :; else

#    echo "必须填写提交日志!" >&2

#exit 1

#fi

disexts='.(bak|exe|tmp|lib|o|obj|log|rar|zip|7z|gz|tar|tgz)$'

disfiles='(^|/)(Thumbs.db|desktop.ini)$'

disdirs='(^|/)(_notes|.DS_Store)/$'

disdot='(^|/)(.)'

diss="$disexts|$disfiles|$disdirs|$disdot"

if look changed | grep '^A ' | sed -r 's#^A +##' | grep -iE $diss 1>&2 ; then

echo "不允许提交上面所列出文件或目录。n这些文件可能是图片的缩略图、临时或备份文件和目录。n请撤销增加上述文件或目录后,再提交到版本库!">&2

exit 1

fi

All checks passed, so allow the commit.

exit 0

注释掉的那段代码是强制要求提供修改日志。

最后,感谢鸡蛋壳和mOo两位同学。

赞过:

赞 正在加载……

相关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值