linux 升级 repository,CentOS上升级Subversion

这些天一直被SVN的分支间的合并(Merge)折磨的够呛,大家也都反映:在连个分支之间合并太麻烦了,有时候根本不知道上次合并了哪个版本。当时想了一些方法,争取从流程上防止出现错误:

1. 每个人都只合并自己的修改

有时候一个fix会涉及多个人的修改。

2. 每一个fix就合并一次,以免修改太多,记不清

大部分时候一个fix都要反反复复修改,并且修复的同时,可能还会新的需求过来。

3. 合并后提交时,在注释中写明合并到了哪个版本。

虽然可以写的清楚,但是在log中也不好查找,而有时候合并是要跳过某些版本的。

大家都在“抱怨”这个合并过程,并且前几天还出现过一次严重的问题。当时,由于着急发布,而合并时又出现了,开发人员就用主分支中的最新内容覆盖了发布分支中的代码,一些还没有测试的代码就被发布了。还好那天没有出现大的问题,随后就有稳定版本上线。一个很现实的问题摆在了眼前:如何才能很好地跟踪合并历史??

有高手推荐了Git,我本人并不对反对使用Git,但是现在改用Git,必然会带来更多的学习开销。不过好像也没有别的方法,就开始尝试git。在Git的介绍中,提到了一个显著的特性就是合并跟踪,而最意外的收获就是:SVN从1.5(2008年呀!再次鄙视一下自己的孤陋寡闻)开始就支持合并跟踪了。那就继续使用SVN了。      先交代一下项目中使用SVN的场景:CentOS,Apache2 + Subversion

到服务器上看下当前SVN服务器的版本(svn --version)是1.4,首先想到的就是升级:

# yum update subversion

还是真有福气呀,现在Cent OS中的仓库中已经有了1.6.11。

然后在本地工作目录使用TortoiseSVN更新,得到错误信息:could not open the requested svn filesystem。在服务器上查看httpd的error.log,发现了:(20014)Internal error: Expected FS format '2'; found format '4'。

原来服务器端程序升级完以后,仓库也需要升级:

# svnadmin upgrade myrespository

仓库升级完毕后,重新启动httpd,再使用用TortoiseSVN更新时,又得到了另外的错误:Can't open file '/var/www/svn/myrepository/db/txn-current-lock': Permission denied。看起来是权限有问题,不过myrepository的权限都属于apache.apache,好像是没有问题。于是进入myrepository,查看个子目录或者文件的权限,发现其中一个新文件format属于root.root。和其他目录下的format进行对比,果真是这个文件有问题,使用:

# chown apache.apache format

进行修改。然后再重启httpd服务。

完成了以上步骤后,客户端和服务器端都可以正常使用了。

这时,当完成一次合并后,再合并时就会发现已合并的版本变成了灰色。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值