锁定老帖子 主题:SVN仓库与测试环境代码同步脚本
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | |||||||||||||||||||||||||
发表时间:2011-03-13
先看一下转载的文章: 来自:http://blog.csdn.net/deepwishly/archive/2010/03/10/5366757.aspx
使用 hook ,为了方便管理员 控制提交的过程 Subversion 提供了 hook 机制。当特定的 事件发生时,相应的 hook 会被调用, hook 其实就相当于特定 事件的处理函数。每个 hook 会得到与它所处理的事件相关的参数,根据 hook 的 返回值, Subversion 会决定是否继续当前的提交过程。 当前 Subversion 提 供了 5 种可以安装的 hook :
hook 只有安装之后才 会被执行,在 Subversion 中这一过程相当简单。只需将 hook 放 在代码库目录的 hooks 子目录下即可。为了能顺利地找到它们, Subversion 规 定 hook 的 命名与上表的事件名同名,如 pre-commit 的 hook 名就是 pre-commit (请 确保它是可执行的,在 windows 平台下需要添加对应的扩展名,如 bat 、 exe 、 com 。)。 创建代码库之后, Subversion 会创建对应的这 5 个事件的 hook 模 版。选取所需的模版,然后将其改名,在修改内容。这样hook 就可以工作了,当 然请先确保 hook 本身能正常的执行。 hook 的编写非常简 单,通常的做法: - 法 1 : 使用所在平台的脚本语言,如 unix 下的 shell ,或 windows/dos 的 批处理命令。 - 法 2 : 使用相关的语言,如 c 。 - 法 3 : 使用脚本语言,如 python 或 perl 等实现主体。然后 通过法 1 来调用。 - 法 4 : 使用相关的语言实现主体,然后通过法 1 来调用。 这里给出在 windows 下 使用 bat 的例子,它实现了 pre-commit hook 主 要作用是检查提交内容中是否包含说明信息,如果没有就放弃:
由于平台的脚本系统功能毕竟 有限( unix 下的不太清楚,不过批命令就太差了),建议采用方法 2 、 3 和 4 。 从简易性方面的考虑,推荐方法 3 。因为象 python 就已经提供了 一些常用的功能,如发送邮件。 最后,就是 subversion 以 正在存取代码库的过程的所属用户来执行 hook 。因此,请确保这个用户具有足够的权限,可以访问 hook 可 以直接或间接访问的资源。 实际的环境是LINUX环境,复制一份post_commit.tmpl,为 post_commit ,更改权限为可运行,或者为0777权限,
编辑post_commit文件,增加一下代码:
/usr/bin/svn update /项目测试环境路径 --username=user --password=password --non-interactive
比如 : /usr/bin/svn update /var/www --username=user --password=password --non-interactive
如果出现中文乱码的情况,先设置编码
export=zh_CN.UTF-8
运行一些脚本测试是否有错误,如果没错误可以进行提交测试。
另外如果出现
Commit failed (details follow):
MERGE of 'xxx': 200 OK (xxx)
Finished!
错误,这个主要是脚本出错。检查脚本即可。
/usr/bin/svn update /var/www --username=user --password=password --non-interactive export=zh_CN.UTF-8 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
发表时间:2011-03-25
我用
svn info svn log 这两个命令获取的数据保存到数据库。 然后根据相应信息操作。 在更新时用脚本自动执行。 |
||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||
浏览 5067 次