升级有风险,升级需谨慎。


我在我大学同学的qq群里咨询了很久,可是同学们不甩我。讨论房子、股票、孩子and



all that crap。当初搞软件的同学们好像就我一个人在做MIS, 其他的只有很少在做软件开



发了,当然也少不了进了银行的NB轰轰的同学,一天都群里说股票,上市。。。所以我



很少上QQ, 每次上QQ几乎都是咨询技术上的东西。


靠人不如靠自己,到subversion 的官方网站上看看吧。


现在subversion 升级到最新的1.7的版本了,而且整个项目也挪到ASF(Apache Software



Foundation)下了。


看介绍,好像1.7版很NB,许多以前难找的依赖包都不需要了,但是客户端结构也会发生变



化,好像每个folder里的隐藏.svn目录会集成到一个控制文件里,很难想象会与我们目前



的结构发生什么不可预知的冲突。放弃吧。


subversion 1.6.17最新的“老”版本。就他吧。


安装subversion1.6.17的依赖包如下:


------------------------------------------------------------


subversion-1.6.17-1.rhel5.x86_64.rpm


subversion-devel-1.6.17-1.rhel5.x86_64.rpm


subversion-perl-1.6.17-1.rhel5.x86_64.rpm


subversion-python-1.6.17-1.rhel5.x86_64.rpm


subversion-tools-1.6.17-1.rhel5.x86_64.rpm


mod_dav_svn-1.6.17-1.rhel5.x86_64.rpm


neon-0.28.4-1.x86_64.rpm


neon-devel-0.28.4-1.x86_64.rpm


sqlite-3.5.9-2.x86_64.rpm


sqlite-devel-3.5.9-2.x86_64.rpm


------------------------------------------------------------


好像要多一点,其实只需要升级安装


------------------------------------------------------------


subversion-1.6.17-1.rhel5.x86_64.rpm


subversion-devel-1.6.17-1.rhel5.x86_64.rpm


subversion-python-1.6.17-1.rhel5.x86_64.rpm


mod_dav_svn-1.6.17-1.rhel5.x86_64.rpm


------------------------------------------------------------


就可以了。


而mailer.py 需要支持的是subversion-python-1.6.17-1.rhel5.x86_64.rpm


1. 升级安装


rpm -Uvh subversion-1.6.17-1.rhel.x86_64.rpm


失败。


rpm -Uvh subversion-devel-1.6.17-1.rhel5.x86_64.rpm


失败。


rpm -Uvh mod_dav_svn-1.6.17-1.rhel5.x86_64.rpm


还是失败。


2. 先卸载,再安装


rpm -e mod_dav_svn
rpm -e subversion-devel
rpm -e subversion-perl
rpm -ivh neon-0.28.4-1.x86_64.rpm
rpm -Uvh sqlite-3.5.9-2.x86_64.rpmrpm
rpm -e subversion
rpm -ivh subversion-1.6.17-1.r
rpm -ivh subversion-devel-1.6.17-1.rhel5.x86_64.rpm
rpm -ivh mod_dav_svn-1.6.17-1.rhel5.x86_64.rpm
rpm -ivh subversion-perl-1.6.17-1.rhel5.x86_64.rpm
比想象中的简单嘛。ll

3. 再升级组件
rpm -ivh subversion-python-1.6.17-1.rhel5.x86_64.rpm



在卸载以前的mod_dav_svn-1.4.2版本的时候,系统会自动备



份/etc/httpd/conf.d/subversion.conf 文件和 /etc/httpd/conf/httpd.conf 文件,当新文件安装



完成时记住重新复制配置就可以了。


4. 编辑hooks 下的post-commit 脚本


注释掉以前的,添加如下代码:


------------------------------------------------------------


/svn/mailer.py commit "$REPOS" "$REV"


------------------------------------------------------------


重启动服务


------------------------------------------------------------


/etc/init.d/httpd restart


------------------------------------------------------------


用TortoseSVN brower check it out.


通过,搞定。



接下来该配置mailer.py 了。



大段的鸟文说明说是默认就可以,那简单


cat /repos/mailer.conf.example | grep ^# | grep ^$ > /repos/mailer.conf


其中修改下邮件代码


------------------------------------------------------------


mail_command = /usr/sbin/sendmail


------------------------------------------------------------



我的测试仓库结构


/xxx


     /1


     /2    


------------------------------------------------------------


[xxx]
for_repos = /repos/xxx
for_paths = 1/*
from_addr = SVN Notice
to_addr = harris.he@xxx.com


------------------------------------------------------------


我只监控根目录下名为1的folder



在客户端我用TotoseSVN 更新一文件提交,但是出了问题,窗口显示MERGE of



'/repos/xxx': 200 OK (http://xxx.xxx.xx.xx:65534



权限没有问题,应该是服务器没有合并版本的原因,这个到不常见,我在网上寻求的帮



助,在/repos/xxx/hooks/post-commit 中添加一行


------------------------------------------------------------


/usr/bin/svn up /repos/xxx


------------------------------------------------------------


 搞定! 监控同一repository 里不同folder的脚步成功了。




TO BE CONTINUE...