我的团队最近决定不使用"主干"的分支,是最典型的版本库的布局。我们发现,在任何给定的时刻总有一个特别分支,发挥作用的传统角色,用于继将举行的其他存储库。也就是说,我们总是具有最高的编号分代表的下一个版本,我们的工作。因此合并到主干,只是多余的,以使我们摆脱了干。

没有任何人有这样做吗?

如果是这样,你有没有注意到的任何优点/缺点?

即使你的团队不这样做,没有任何人有任何想法在这个布局?

有帮助吗?

解决方案

你说有关的 推广的模型 -必然的文件强调的问题与它沟通的改变角色的代码线和移动之间的工作分支。

扩大在我的视的问题列出:

1)不断变化的政策的代码线:

每一码线有一项政策,无论是写下来,并正式的,或完全隐含在开发人员的头部。它定义了e.g:

  • 是谁允许提交到代码 线
  • 多么需要测试 (例如做单元的测试已经通过, 回归测试,完整的系统测试)
  • 有多少人必须码的审查 变化
  • 什么样的变化 允许

干办法,政策仍然是固定的,因此更容易写下来,这使得他们更容易沟通(更重要的是在一个更大团队的).

例如干:

  • 任何开发可以提交
  • 任何的改变
  • 单元的测试必须通过
  • 代码审查提交后

版分支机构:

  • 只有维护开发
  • 只有修正
  • 单元测试+回归测试
  • 代码审查的2个其他开发商之前提交

标记分支:

  • 没有承诺在创建之后

开发私人的分支机构:

  • 只有开发人员在检查
  • 任何的改变
  • 测试只需要在合并之前要干
  • 代码审查之前合并到主干

如果你有促进模型,然后你有一个政策,同时在主要的发展,则必须告诉每个人的时候你改变政策,同时准备释放,然后是另一个政策(对于代码线)一旦线被释放。

促进模型是一个容易得到,就地直接到非源的控制方式的工作。但它伤害,一旦你开始越来越大的团队。

如果你看看Linux内核开发的,你可以看到的应变之间的推广模型和干模型:Linus'树是促销它通过个周期之间的合并窗口,并rc/稳定的时期。但是Linux-下和毫米已如雨后春笋般涌现,给予更喜欢干线。

分布式SCM/风险投资都有所不同的,无论如何,该政策没有将分发给所有开发人员,因为每个开展有他自己的树木,拉的变化,当他想要的。

开放源码项目遭受的问题,他们不能强迫人去做苦力的工作的稳定释放之后支离主干。因此,促进模型是更重要的是作为一种方式迫使稳定的努力,而不只是工作上的特征。

2)活动的工作:

开发人员可能工作的一个特征时,政策进行他的工作在改变错误的修正只,他现在需要开他的工作复制到一个不同的代码线。这可能是任何地方从容易极其困难的根据供应链管理系统中使用。这个问题不会发生,如果开发人员的工作是在主干,因为他们的工作总是会干。如果开发人员是在一个私人或功能分支然后他们的工作将仅仅影响干(并释放)。

如果一个特点是已经检查过,但被推迟的版本目前正在,你必须作出如何将其删除。这个问题仍然与现有的干模型,但是可能更容易解决的摘樱桃的事情从中继线用于释放。这就是功能分支机构的帮助-但他们有一个整合的成本。

其他提示

我与Perforce的纸问题是,它的挫折促销模型不提主要优点,减少合并的开销。事实上,纸错误地指出了“主线模式”强加“没有额外的管理开销”,一个ridiculuous要求。 “始终合并到主干”模式意味着只是 - 你不得不合并每个人的开销。这是毫无意义的开销,如果你有以下情况(我们有):

<强> A)一个小团队(5至7开发者)的所有内喊彼此的距离。通信是一个非问题时,我们需要做一个分支

B)代码库那里是曾经真的只有2大分支 - 一个分公司生产和“发展未来的事情”。在一个蓝色的月亮也许当我们有3

我想我的观点是 - 这是一个情境的事情。要说“的促销模式有问题,”就像是说“从来没有使用OR / M”。这取决于你的环境。

Subversion允许这两种方法。树干不是必须的,但一个约定。如果你拥有了它,有些工具的工作更容易(例如迁移工具GIT)。如果你没有拥有它,你必须手动做一些事情,但我不能想到的东西,你会您的日常工作中发现。

最近,我开始上一个项目,是一个颠覆存储库工作。谁创建的存储库并不遵循任何特定的布局 - 他们只需在库的根塞一切(无中继/,无枝/,当然也没有标签/)。我想创建一个分支上工作,有些标签为其他的东西,但意识到它是多么的困难做,对不遵循适当的布局Subversion库。

我们做的 - 那种。我们不使用中继,但对于我们的项目的每一个版本创建一个新的分支。这个“标签”分支,然后每个版本的树干,我们通过合并修改到老版本的backport错误修正。

它非常适合我们,但我们确实有很多子项目在我们的项目。

IME,在某些环境中的主干是交换修正和改变向/从的好地方。也就是说,每个人都合并其修复的的树干,大家都合并其他人的修正的树干。我们发现,在大量的代码是许多独立的项目之间共享和所有这些项目促进了共享代码的环境非常有帮助。

您的环境可能会有所不同,虽然。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top