钩子功能
该功能其实是依据脚本实现,该脚本的写法是shell 是一样的 。 钩子脚本就是对某些版本库触发的程序 。 类似 inotify
钩子的目录 在每一个svn的项目工程库下面。 里面会有模板。
[root@localhost sadoc]# pwd
/application/svndata/sadoc
[root@localhost sadoc]# ll
total 8
drwxr-xr-x 2 root root 79 Dec 29 12:06 conf
drwxr-sr-x 6 root root 253 Dec 31 12:39 db
-r--r--r-- 1 root root 2 Dec 28 12:37 format
drwxr-xr-x 2 root root 231 Dec 28 12:37 hooks
drwxr-xr-x 2 root root 41 Dec 28 12:37 locks
-rw-r--r-- 1 root root 229 Dec 28 12:37 README.txt
[root@localhost sadoc]# ll hooks/
total 36
-rw-r--r-- 1 root root 1977 Dec 28 12:37 post-commit.tmpl #提交完成时触发事务
-rw-r--r-- 1 root root 1638 Dec 28 12:37 post-lock.tmpl #对文件进行加锁之后执行的事物
-rw-r--r-- 1 root root 2289 Dec 28 12:37 post-revprop-change.tmpl #版本属性修改后触发事务
-rw-r--r-- 1 root root 1567 Dec 28 12:37 post-unlock.tmpl #对文件进行解锁之后执行的事物
-rw-r--r-- 1 root root 3426 Dec 28 12:37 pre-commit.tmpl #提交完成前触发事务
-rw-r--r-- 1 root root 2434 Dec 28 12:37 pre-lock.tmpl #对文件进行加锁之前执行的事物
-rw-r--r-- 1 root root 2786 Dec 28 12:37 pre-revprop-change.tmpl #版本属性修改前触发事务
-rw-r--r-- 1 root root 2122 Dec 28 12:37 pre-unlock.tmpl #对文件进行解锁之前执行的事物
-rw-r--r-- 1 root root 2780 Dec 28 12:37 start-commit.tmpl #提交前触发事务,还未提交时触发的时间
标黄的 为常用
重要提示:
1. 如果要使用这些模板。需要将模板后面的.tmpl 的后缀名去掉。
2.由于安全原因,Subversion 在一个空环境中执行钩子脚本是没有任何环境变量的 ,甚至没有$PATH。所以有的脚本,在系统中手动可以执行,但是在svn切不能运行。是因为没有变量 ,所以必须要在钩子设置中设置好环境变量或写好绝对路径。这个需要注意