情景:
当你使用subversion检入新代码时,其它人获得它们
结果:
你的代码可能有bug,这样你有两种选择:
检入有问题的代码,使其它人抓狂
直到调试完成才检入它们
subverison经常给你这种选择,不是版本库充满bug,就是新写的代码不在版本库中。
subversion团队用户经常几天或者几周没有代码检入。它们怕检入破坏构建,一旦破坏构建,会被管理者责问。这意味着用户几天或几周没有用到版本控制的好处。
而mercurial提供了一个私有的仓库,当你完成代码的一个逻辑,就可以提交到本地库。当所有代码调试完成时,你可以push给回主仓库或其它人。
考虑一种情况,在某个文件中修改了一个函数,然后移到了另一个位置,subversion是认为是一个新文件(svn 在今后的版本中将解决这一问题),而mercurial则记录一次修改,一次移动,使得合并更加容易。
使用mercurial,合并不再是一个梦魇。
svn用户总是避免使用分支,但是分支在现在的开发模式是必须的,有一个新特征或者一个新的bug修复,都需要一个分支。
使稳定版本和开发版本分离是版本控制需要做到的。
参考: