2010-05-24 90 views
18

我们最近有一个SVN分支已经合并回主干,并且需要对该功能/功能区域进行一些更多的工作。我建议使用同一个分支,但被告知一旦它被集成到主干后就不应该重新使用分支(SVN文档中提供了一个参考,现在我找不到它)。 这表明一旦你合并回树干,一个分支是相当无用的,所以我的问题是一旦分支不再需要,它应该被删除还是保留?你应该如何处理旧的SVN分支?

回答

17

当我整合一个分支时,我将它从branches/移动到branches/integrated/。保持branches/清洁,因此很容易找到当前的工作,但也可以很容易地挖掘旧分支,以查看做了哪些更改而无需执行大量修订号考古。

+1

我称它为分支坟墓。 – 2010-05-24 21:13:37

+1

我用过“阁楼”。 – 2010-05-24 21:18:18

+2

为了让自己开心,我还使用了“修剪过的旧分支”提交的评论 – 2011-07-28 13:28:57

1

经过一段时间项目结束后,我删除了旧分支。

您可以重复使用分支名称,但为什么?名字很便宜。不要将你的分支称为“工作”,而是要更具体一些,如“数据转换阶段1”。

+0

如果你删除了一个分支,然后尝试使用相同的名称创建另一个分支,会发生什么?在我们的例子中,我们有一个(我认为)像“数据转换”这样的特定名称,不知道我们会有一个阶段2! – 2010-05-24 20:17:42

+0

分支(您删除的旧分支和使用相同名称创建的新分支)是不同的,并且不共享修订历史记录。它们的名称只有相似之处,但它们可能会被赋予不同的名称,因为您会得到相同的效果。 – 2010-05-24 20:19:07

+0

您可以重复使用分支名称。我只是尽量不要。在你的情况下,我会做“数据转换”,然后当我发现第二阶段必须发生时,使它成为“数据转换阶段2”。 – 2010-05-24 20:34:58

0

我建议不要删除旧的分支,除非他们造成问题。它实际上并没有为你节省任何空间,如果你需要的话,它可以很容易地查看旧版本。

将分支合并到主干后重用分支几乎肯定是一个坏主意。

+1

yup,重用分支名称就像重复使用昨天的袜子 – shfx 2010-05-24 22:09:02

5

SVN 1.5引入了“mergeinfo”属性,它允许您在支持重复分支更新的同时轻松地将分支重新集成到主干。这允许你创建一个分支,从主干更新分支,最后将分支重新集成到主干(svn merge --reintegrate)。例如,当您创建分支来修复错误或开发功能时,这很有用。

mergeinfo的实现方式不允许你做后续的重新集成,所以这就是为什么你不推荐重用分支的原因。

当您想要在发布分支上开发bug修复并定期重新集成到主干时,这对于“发布分支”是有问题的。

如果你想重用一个分支,通常的模式是创建一个新的副本(分支)具有相同的名称:

  1. 删除分支
  2. 提交
  3. 重建分支(分支在具有相同名称的路径)
  4. 提交新的分支
  5. 工作

当您“重新创建”分支时,在步骤3中,合并信息将被还原,因此您可以在未来重新整合而不会出现任何问题。

回到你的问题:“所以我的问题是一旦一个分支不再需要,应该只是删除或保留? 我会保留分支,所以它会在HEAD修订版中可见。分支消失是令人困惑的(“嘿,我们是否在上周创建了0.1版本的分支?”“嗯,我不记得...检查回购历史记录”)

至于重用分支,我会使用约定永远不会重用分支,并且如果您需要“添加一些问题”,请重新创建它。 但在我看来,使用不同的分支名称更清晰。您可能可以使用命名约定来识别分支。例如,原件将是分支机构/ Issue-1和后续分机分支机构/ Issue-1.0,分支机构/ Issue-1.1等。

Mergeinfo参考。

http://blogs.open.collab.net/svn/2008/07/subversion-merg.html http://blogs.open.collab.net/svn/2009/11/where-did-that-mergeinfo-come-from.html

0

好做法,同时制定了大项目,就是名称中使用从项目跟踪工具的任务名称的分支:如“DEV-1512”,“FEAT-512”,或错误追踪系统门票:“BUG-5142”等

当任务完成后,在生产服务器上运行并运行,删除该分支。你总是可以合并回来。

PS。 想像$回购runung svn ls /分支机构,9999个分支机构;)

+0

我完全可以看到包含跟踪编号的好处,但我也有描述性的东西。 FEAT-132-image-blur-function,只是为了避免为其他团队成员查找这些数字。 – 2013-11-05 09:56:23

4

From Wikipedia:“一旦一个分支被切断或者从源删除任何其他方式,这是最常见的被称为棒”

所以我认为你应该在分支机构的同一级创建一个“棍子”目录

+1

+1为聪明 – Kyle 2014-01-29 19:11:19