我们是一家小型创业公司,从零开始。我们使用Subversion,存储库位于基于Web的服务上。
我熟悉CVS并阅读SVN的一些介绍,这不是什么大问题。我对CM 方法的参考感兴趣,这将使我们能够在CM本身上花费最少的精力,但是我们能够顺利地工作而不会发生冲突。我确信没有轮子需要重新发明,我只想确认我的想法。
我的想法是:
我不清楚:
非常感谢。
答案 0 :(得分:4)
为什么您觉得需要在私人分支机构进行开发?难道你不能让你的开发人员在同一个存储库路径中一起工作吗?我问的原因是根据我的经验,大多数人认为他们“需要”这通常是错误的,并且不了解源管理以及Subversion如何工作。我不是在指责你,但我希望你能解释这一要求背后的原因,因为它可能对未来的建议产生影响。
为了尝试回答您的问题,我可以告诉您,使用私有开发人员分支会给您的管理和工具配置增加不必要的负担。开发人员应该在同一个存储库路径中一起工作,除非有充分的理由像使用分支修复bug或实验性工作。这有很多原因,但我想到的最初几个原因是开发是一项团队工作,对每个人的变化的可见性,开发过程的简单性,工具配置的简单性和简化的管理。
典型的Subversion用法使trunk成为所有开发人员在下一个版本上工作的路径。您可以创建分支以执行隔离并行开发,例如bugfix发布,实验性功能和长时间运行的开发任务。我们都知道所有场景都不典型,每个团队的需求都是独一无二的,但在我知道你为什么需要私人开发者分支之前,我会不同意他们是需要的,他们会给你的团队,流程和工具配置。
答案 1 :(得分:1)
如果需要,我将从只有一个带有维护分支的主干分支开始。这通常是一个很好的默认值。这将产生令人惊讶的极少冲突,并将推动发展“经常做出小改变”,这是一件好事。我已经经历了这个团队规模为1-10的开发人员并且它的工作原理。这在Subversion doc。中称为"release branches"。
Feature branches是另一种常见的操作方式。在这里,您可以为每个新功能创建一个新分支,并将功能合并到主干。一个开发人员可能同时拥有多个功能分支,或者几个开发人员可能同时在同一个功能分支上工作。
为每个开发人员建立一个分支需要你进行大量的合并,这将是痛苦的。
回答你的两个不明确的观点:在将功能分支集成到主干之后,你应该从主干开始创建一个新的功能分支。 Subversion docs建议停止使用旧分支。
在Subversion 1.5中,一旦从分支到主干完成了--reintegrate合并,分支就不再可用于进一步的工作。它无法正确吸收新的行李箱更换,也无法再次正确地重新集成到行李箱。因此,如果您想继续处理功能分支,我们建议您销毁它,然后从主干中重新创建它:
然而 trunk 分支没什么特别之处,它是各种方式的普通分支。它只有一个与其他分支不同的名称。因此,重新融入主干没有特别之处。 Subversion文档讨论了--reintegrate
操作,但它引用了以下情况: