给svn添加钩子同步文件到测试环境

同步到正式环境还是不行的,各种BUG需要进行黑盒测试才能放行。

网上已经有很多教程了。这里不细说

1、进入版本库下的hooks目录

cd /opt/svn/yimeishow2/hooks/

2、将post-commit.tmpl 复制为 post-commit

cp post-commit.tmpl post-commit

3、给post-commit可执行权限

chmod 0777 post-commit

4、编辑post-commit

vi post-commit

5、将文件拉到最后一行

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
export LANG=zh_CN.GB2312
SVN=/usr/bin/svn
STATIC_DIR=/www/web/yimeishow2/public_html/
${SVN} update  ${STATIC_DIR} --username "svn name" --password "svn pass"

给mailer加上注释,至于语言问题,如果错误的话可能导致无法同步成功,可选的有en_US.UTF-8、zh_CN.UTF-8、zh_CN.GB2312,自己可以一个个试。

自行修改svn和STATIC_DIR目录,一个是svn执行目录,一个是目标目录

svn name处改成一个有参与权限的svn账号,后面的svn pass是密码


6、在提交之前,进行一次checkout代码到指定目录

svn checkout svn://localhost/yimeishow2 /www/web/yimeishow/public_html/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SVN上传文件的大小没有固定的限制,但是在实际使用中,建议限制单个文件的大小不要超过100M,否则会对版本库的性能和稳定性产生影响。 如果需要限制上传文件的大小和类型,可以通过使用Svn钩子实现。Svn钩子是一种机制,可以在版本库中的特定事件发生时触发脚本或程序。通过Svn钩子,可以实现对提交文件的大小和类型进行限制。 具体实现方法如下: 1. 编写限制上传文件大小和类型的脚本或程序。 2. 将脚本或程序保存在版本库的hooks目录下,并将其命名为pre-commit。 3. 给pre-commit文件添加可执行权限。 4. 在pre-commit文件添加代码,以调用限制上传文件大小和类型的脚本或程序。 例如,以下是一个限制上传文件大小和类型的Python脚本(需要安装Python3): ```python #!/usr/bin/env python3 import os import sys # 限制上传文件的大小为100M MAX_SIZE = 100 * 1024 * 1024 # 限制上传文件的类型为txt和md ALLOWED_TYPES = ['.txt', '.md'] def check_file_size(path): size = os.path.getsize(path) if size > MAX_SIZE: print('File size exceeds limit: %s' % path) return False return True def check_file_type(path): _, ext = os.path.splitext(path) if ext.lower() not in ALLOWED_TYPES: print('File type not allowed: %s' % path) return False return True def main(argv): for path in argv: if not check_file_size(path) or not check_file_type(path): sys.exit(1) if __name__ == '__main__': main(sys.argv[1:]) ``` 在pre-commit文件添加以下代码: ```bash #!/bin/sh REPOS="$1" TXN="$2" python3 /path/to/your/script.py "$REPOS"/"$TXN"/changes exit 0 ``` 其中,/path/to/your/script.py为限制上传文件大小和类型的Python脚本的路径。 这样,当用户提交文件时,Svn钩子会先调用pre-commit文件,pre-commit文件会再调用限制上传文件大小和类型的Python脚本进行检查,如果文件大小或类型不符合要求,提交操作就会失败。 注意,在使用Svn钩子时,需要注意以下几点: - Svn钩子只在服务器端生效,不会在客户端生效。 - Svn钩子是通过调用脚本或程序实现的,因此需要确保脚本或程序能够正确地执行。 - Svn钩子只能限制提交操作,无法限制其他操作,如更新、删除等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值