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的账号密码
至此完毕
总结
配置过程非常的简单,只要配置了钩子,这么一来就免去手动更新的麻烦了,自然效率就高很多。