我在一些地方听说分布式版本控制系统闪耀的主要原因之一是比SVN这样的传统工具更好地融合.这实际上是由于两个系统如何工作的固有差异,或者像Git/Mercurial 这样的特定 DVCS实现是否只有比SVN更聪明的合并算法?
我经常读到Hg(和Git和......)在合并方面比SVN更好但是我从未见过Hg/Git可以合并SVN失败的地方(或者SVN需要人工干预的地方)的实际例子.您可以发布一些分支/修改/提交/ ....-操作的逐步列表,显示SVN在Hg/Git愉快地移动时会失败的位置吗?实用,非常特殊的情况请...
一些背景:我们有几十个开发人员在使用SVN进行项目,每个项目(或一组类似项目)都在自己的存储库中.我们知道如何应用发布和功能分支,所以我们不会经常遇到问题(即,我们一直在那里,但我们已经学会克服Joel的问题 "一个程序员给整个团队造成创伤"或"需要六个开发人员两周才能重新整合分支机构").我们的发布分支非常稳定,仅用于应用错误修正.我们的中继线应该足够稳定,能够在一周内创建发布.我们还有一些开发人员或开发人员可以使用的功能分支.是的,它们在重新集成后被删除,因此它们不会使存储库混乱.;)
所以我仍然试图找到Hg/Git优于SVN的优势.我很想获得一些实践经验,但目前还没有任何我们可以移动到汞/ GIT中还没有更大的项目,所以我坚持用只含有少量由文件小型人工玩的项目.而且我正在寻找一些你可以感受到Hg/Git令人印象深刻的力量的案例,因为到目前为止我经常读到它们但却未能自己找到它们.
维护代码时要遵循的最佳实践和经验法则是什么?在开发分支中只有生产就绪代码,或者开发分支中是否有未经测试的最新代码,这是一种好的做法吗?
你们如何维护开发代码和生产代码?
编辑 - 补充问题 - 您的开发团队是否遵循"尽快提交 - 通常 - 甚至是代码包含 - 次要错误或不完整"协议或"提交 - 只有完美的代码"协议,同时将代码提交给开发分支?
我想在使用vcs或dvcs时学习其他人的工作流程.
请描述您处理以下任务的策略:
您可以随意组织您的答案,不按任务分组,但按照您认为相关的任何分组,但请通过VCS/DVCS进行组织(请不要混用它们).
谢谢.
我们已决定为我们添加到移动应用程序中的每个新功能创建新的SVN分支.这背后的最终目标是保留每个代码更改的历史记录(当我们手动将项目文件夹复制到SVN而不是创建和合并分支时,这不会发生).
我的问题是,到目前为止,我无法将更改从一个分支合并到另一个分支.
我已经提到以下帖子但没有成功:
这是我到目前为止所尝试的:
我有两个功能分支,如下面Tortoise SVN中所示:
我想将分支Feature_A3中的更改合并到分支Feature_A2中.为此,我Merge from
在A2工作副本中使用Android Studio的VCS中的选项:
然后它要求我选择要从(A3)合并的分支或配置其他分支:
我点击配置分支,只是为了显示现有的分支配置:
如您所见,A2是Trunk,A3是分支.它是否正确?
然后它问我想要合并到A2的A3部分.我选择/src
目录(存在相关更改的位置):
然后它慷慨地给了我三种不同的方式来执行合并操作:
我选择了第三个选项,因为它直接给了我需要合并的更改:
我点击Merge Selected和BAM!我每次都会收到此错误:
关于"未解决的冲突"或"跳过的项目"是什么,没有任何线索.为什么我会收到此错误,如何将A3中的更改合并到A2中?有人可以帮忙吗?所有答案将不胜感激.谢谢 ...
我一直在关注以下官方的Intellij IDEA文档:
请注意:
目前我使用的是Subversion,而不是Git.
我本地工作副本的目录结构与SVN repos的目录结构不完全相同.这可能是错误的原因吗?
答案 ...
感谢Peter Parker,尤其是Yoav Aharoni的宝贵意见.正如Yoav正确指出的那样,确实是指定分支位置文件夹的方式.它需要是包含分支的文件夹,而不是分支文件夹本身:正如Peter正确地说的那样,选中"Include merged revisions"会显示合并的历史记录.我现在能够从IDE本身合并,并在TortoiseSVN中查看合并的历史记录.没有命令行!好极了!!! …
svn android intellij-idea branching-and-merging android-studio