一、小公司开发提交代码上线图
二、钩子脚本
钩子脚本只干两件事,1是svn项目的内容同步到本地的/data/www目录下;2通过rsync把/data/www的内容推到/tmp上,由于是在本机测试故放在/tmp下,如果在线上生产,会写上对方面web服务器IP地址:某个目录下
[root@svn hooks]# pwd
/application/svndata/sadoc/hooks
[root@svn hooks]# ll
-rw-r--r-- 1 root root 1977 6月 15 16:42 post-commit.tmpl
-rw-r--r-- 1 root root 1638 6月 15 16:42 post-lock.tmpl
-rw-r--r-- 1 root root 2289 6月 15 16:42 post-revprop-change.tmpl
-rw-r--r-- 1 root root 1567 6月 15 16:42 post-unlock.tmpl
-rw-r--r-- 1 root root 3426 6月 15 16:42 pre-commit.tmpl
-rw-r--r-- 1 root root 2410 6月 15 16:42 pre-lock.tmpl
-rw-r--r-- 1 root root 2786 6月 15 16:42 pre-revprop-change.tmpl
-rw-r--r-- 1 root root 2100 6月 15 16:42 pre-unlock.tmpl
-rw-r--r-- 1 root root 2780 6月 15 16:42 start-commit.tmpl
[root@svn hooks]# cp post-commit post-commit.bak
[root@svn hooks]# vim post-commit
PEPOS="$1"
REV="$2"
export LANG=en
#update content from svn
SVN=/usr/bin/svn
$SVN update --useranme qingyun --password 168 /data/www
if [ $? -eq 0 ]
then
/usr/bin/rsync -az --delete /data/www /tmp/
fi
REPOS="$1"
[root@svn hooks]# # mkdir -pv /data/www
把svn项目的内容同步到本地的/data/www目录下
[root@svn hooks]# svn co svn://192.168.1.220/sadoc --username qingyun --password 168 /data/www
A /data/www/trunk
A /data/www/trunk/test
A /data/www/trunk/test/tom.rar
A /data/www/trunk/test/tom.txt
A /data/www/lession001.txt
A /data/www/lession002.txt
A /data/www/branch
A /data/www/tags
三、测试
1、客户端D:\oldboy\trunk下建个文件love
2、回到SVN服务器
[root@svn hooks]# tree /data/www
/data/www
├── branch
├── lession001.txt
├── lession002.txt
├── tags
└── trunk
└── test
├── 123.txt
├── jerrry.txt
├── love.txt
└── tom.txt
[root@svn hooks]# tree /tmp
/tmp
├── 0452.log
├── 04S.log
├── 0644.log
├── 1224.log
├── 1548.log
├── lost+found
└── www
├── branch
├── lession001.txt
├── lession002.txt
├── tags
└── trunk
└── test
├── 123.txt
├── jerrry.txt
├── love.txt
└── tom.txt