单就个人感情来说,我其实喜欢git。但显然subversion才是更普遍的版本控制管理工具,适合用在团队开发中。
那么,有一个很常见的需求就是把工程师提交的代码,更新到htdocs目录,这时候需要用svn hook,简单做法就是写一个post-commit hook:
svn update /var/htdocs/
但当svn目录越来越大,文件越来越多的时候,svn提交也会越来越慢。因为每一次的提交都会造成整个svn的更新。
这个时候,或许可以稍微变通一下,尝试用svnlook只更新那些有变化的文件夹:
for dir in `svnlook dirs-changed /var/svnroot/` do svn update -N /var/htdocs/$dir done
利用这种方式,我们的svn提交速度提高明显。