svn配置post-commit钩子

3,529 阅读1分钟
原文链接: www.xiejiahe.com

post-commit是干嘛的?

当将文件commit之后,hooks会执行以下过程

// 提交之前
pre-commit
    ↓
// 提交过程
start-commit
    ↓
// 提交之后
post-commit

post-commit就是当我们commit之后处理任务,那么就可以利用post-commit实现自动更新,接下来就实现这一功能。

坐在电脑

linux配置

进入hooks目录,hooks目录就在仓库的目录下

[root@root]# ls
conf  db  format  hooks  locks  README.txt
[root@root]# cd hooks/

编辑post-commit,默认是不存在post-commit文件的,不存在会自动新建

[root@root hooks]# vim post-commit

将下面shell拷贝过去

#!/bin/sh
# 指定编码方式
export LANG=en_US.UTF-8

# svn执行目录,一般就是这个,如果不是可以which svn 查看
SVN=/usr/bin/svn

# svn checkout下来的目录,一般来说就是你的网站根目录
WEB=/home/www/

# --username后面是svn账号,--password后面是svn密码
$SVN update $WEB --username root --password root

将post-commit授予权限

chmod 777 post-commit

完毕...这样子的话每次commit之后,另外一边就会自动更新,免去了手动的麻烦。

windows配置

windows配置比较简单

在hooks目录下新建文件为post-commit.bat,注意后缀为.bat

post-commit.bat

用文本编辑器打开post-commit.bat,并将以下拷贝过去

@echo off  
SET REPOS=%1  
SET REV=%2  
SET DIR=%REPOS%/hooks  
SET PATH=%PATH%;  
SET WORKING_COPY=C:/www
svn update %WORKING_COPY% --username root --password root

SET WORKING_COPY 指定更新目录,一般就是checkout下来的路径

--username --password 后面是svn的账号密码

至此完毕

总结

配置过程非常的简单,只要配置了钩子,这么一来就免去手动更新的麻烦了,自然效率就高很多。