Subversion是一个强大的版本控制系统,特别是它能够轻松地处理库管理进程中在各个点上的数据。在进行提交后、或者进行提交前,或锁定、或解锁文件中,或者在其它情况下,你都能拥有脚本句柄数据。所有的这些都是通过hook实现的,hook是subversion库结构中的一部分。 Hook由一个库事件来触发的。例如,如果你有一个subversion库存放在/subversion/repos/packages下,那么你的hook将被存放在/subversion/repos/packages/hooks目录下。
在这个hook目录下存放着大量的临时文件。这些文件只是作为例子来存在。所以如果你想写一个脚本能在每次提交后,把subversion数据用e-mail发送给你的话,你应该拷贝post-commit.tmpl到post-commit中,把它变为可执行的,并按照你的需要去编辑它。
这些脚本能从subversion网站上获得,同时也有些其它用户提供的脚本和工具。你能在http://subversion.tigris.org/tools_contrib.Html上浏览到许多这样的脚本。目前最感兴趣的是邮件提交的(post-commit e-mail)脚本commit-email.pl。把这个文件下载下来,并把它放在/usr/local/bin/下面,然后使它变成可执行的。同时在hooks/post-commit脚本中,在该文件末尾增加上以下内容:
REPOS=""
REV=""
/usr/local/bin/commit-email.pl "$REPOS" "$REV" --from [email protected] -s
"SVN commit in packages" [email protected]
这个将执行的commit-e-mail.pl脚本会带有一些参数,也就是库名和你做的修订。它将按照指定的主题路线从[email protected]网站上发送e-mail到[email protected]上,[email protected]网站上有些指定的用户或者邮件列表。
如果你想在站点上查看其它的脚本,你可以在版本控制软件库的管理器中看到许多有趣的脚本。在整个数据被提交到subversion之前,这些脚本能够做某些检查,比如,各种预提交检查脚本。
更多内容请看脚本攻击和防范专题,或(出处:http://www.sheup.com)