我厌倦了手动跟踪我的分支并在我的存储库中合并!这太容易出错了.在一个每个人似乎都想要减少重复和自动化一切的想法的世界里,颠覆分支/合并感觉就像它从80年代遗留下来一样.在没有增加分布式SCM范例的复杂性的情况下,具有出色的分支和合并支持的subversion有什么好的替代方案?理想情况下它是免费的,但如果我不得不支付一些现金,我可能会倾向于它是否足够好.
你升级到Subversion 1.5了吗?它包括自动合并跟踪.这可能会解决您的问题.听起来你已经熟悉了这个工具本身并且它是免费的.因此,如果您将当前的解决方案升级到1.5,您将几乎没有学习曲线和零成本 - 此外,您不必经历将现有代码移植到新的源代码控制系统的痛苦.
您是否考虑过分布式版本控制,例如Git?每个"结账"本质上都是一个分支...这是一种完全不同的思考源控制的方式.
Git是免费的,由Linus Torvalds创建,用于Linux(当然还有很多其他项目).
Perforce是一款出色的工具,但超过2位用户,因为它针对的是专业人士.我们使用它具有相当重的分支方案(在主要开发期间每个特征1个分支)并且它运行良好.有点像微软使用的"蜘蛛网"分支(使用经过修改的Perforce旧版本),但我现在无法在线查找故事.
在旧版本的Subversion中我也厌倦了这些限制.然而,我公司中没有其他人使用分支和合并.他们每个人在尝试一个新功能时都会得到另一个结账,hack-hack-hack并且如果不好则将其删除 - 在好的情况下提交.有时他们会犯下一些坏事;)
所以我开始使用git + svn.含义:我有svn checkout,在这个目录中我已经启动了git.现在我有快速合并和分支,我不会打断任何其他.如果我需要尝试新功能X,只需分支/结帐/黑客入侵.如果我现在需要从我们的SVN repo中获取一些关键更新:git stash,git checkout master,svn update,git commit -a,git checkout feature-X,git rebase,git stash apply(所有这些因为git-svn没有在Windows上工作).
看起来很多操作,但它们很快.我的意思是非常快.并给我我需要的灵活性(参见我在git + visual studio上的文章).
我认为Bazaar可以做类似的事情,可能在一件事情上更好:它可以轻松支持非分布式,基于中央存储库的开发.