我经常读到Hg(和Git和......)在合并方面比SVN更好但是我从未见过Hg/Git可以合并SVN失败的地方(或者SVN需要人工干预的地方)的实际例子.您可以发布一些分支/修改/提交/ ....-操作的逐步列表,显示SVN在Hg/Git愉快地移动时会失败的位置吗?实用,非常特殊的情况请...
一些背景:我们有几十个开发人员在使用SVN进行项目,每个项目(或一组类似项目)都在自己的存储库中.我们知道如何应用发布和功能分支,所以我们不会经常遇到问题(即,我们一直在那里,但我们已经学会克服Joel的问题 "一个程序员给整个团队造成创伤"或"需要六个开发人员两周才能重新整合分支机构").我们的发布分支非常稳定,仅用于应用错误修正.我们的中继线应该足够稳定,能够在一周内创建发布.我们还有一些开发人员或开发人员可以使用的功能分支.是的,它们在重新集成后被删除,因此它们不会使存储库混乱.;)
所以我仍然试图找到Hg/Git优于SVN的优势.我很想获得一些实践经验,但目前还没有任何我们可以移动到汞/ GIT中还没有更大的项目,所以我坚持用只含有少量由文件小型人工玩的项目.而且我正在寻找一些你可以感受到Hg/Git令人印象深刻的力量的案例,因为到目前为止我经常读到它们但却未能自己找到它们.
维护代码时要遵循的最佳实践和经验法则是什么?在开发分支中只有生产就绪代码,或者开发分支中是否有未经测试的最新代码,这是一种好的做法吗?
你们如何维护开发代码和生产代码?
编辑 - 补充问题 - 您的开发团队是否遵循"尽快提交 - 通常 - 甚至是代码包含 - 次要错误或不完整"协议或"提交 - 只有完美的代码"协议,同时将代码提交给开发分支?
在Subversion或CVS中处理多个合并到分支上只是必须经历的事情之一.在Mercurial(以及可能是任何其他分布式系统)中跟踪分支和合并非常容易,但我不知道为什么.还有其他人知道吗?
我的问题源于这样一个事实:使用Mercurial你可以采用类似于Subversions/CVSs中央存储库的工作实践,一切都会正常工作.您可以在同一分支上执行多个合并,并且您不需要具有提交编号和标记名称的无数废纸.
我知道最新版本的Subversion能够跟踪合并到分支机构,所以你不会有相同程度的麻烦,但它是一个巨大而重大的开发,并且它仍然不能完成开发团队所做的一切喜欢这样做.
它的运作方式必然存在根本区别.
我听说许多分布式VCS(git,mercurial等)在合并方面比Subversion等传统方式更好.这是什么意思?他们做了什么样的事情才能让合并变得更好?这些事情可以在传统的VCS中完成吗?
奖金问题:SVN 1.5的合并跟踪水平是否适合公平竞争?
我听说过,例如将分支与git或mercurial合并比使用svn更容易.
在软件博客上阅读Joel的最后一篇,我并没有明白为什么.你能提供一个具体的例子,与svn相比,与git/mercurial合并导致更少的合并冲突吗?