某团队希望做到Continuous Code Review, 想在每次check-in 到SVN之前,先判断特定用户群体否在commit log里面包含了"Review By: xxx"的字样。
记得以前NSN里面有人用过这个法子,记不太清了。
于是研究了一下脚本,其实SVN/GIT都提供了类似的hook, 在<your repository>/hooks 目录下,都是shell或cmd脚本(要看服务器的操作系统了),会在不同的事件时触发。
为了实现更复杂的功能或者需要跨平台,那不妨用shell或cmd去调用Python脚本咯。
SVN的基本原理就是用"svnlook"命令来查看服务器的元数据,比如"svnlook info REPOS_PATH --revision 23“(见http://i18n-zh.googlecode.com/svn/www/svnbook-1.4/svn.ref.svnlook.c.info.html)
其中 REPOS_PATH是服务器上的绝对路径。--revision后面跟已有版本号码,而--transaction后面跟提交事务ID,也就是我们要利用的。
shell脚本