我们最近有一个SVN分支已经合并回主干,还需要在该功能/功能区域进行更多的工作.我建议使用相同的分支,但有人告诉你,一旦它被集成到trunk中就不应该重新使用分支(SVN文档中的参考已经给出,我现在找不到它).这表明一旦你合并回主干,一个分支是相当无用的,所以我的问题是一旦不再需要一个分支,它是否应该被删除或保留?
Ste*_*non 17
当我整合一个分支时,我将其branches/移至branches/integrated/.保持branches/清洁,以便于查找当前的工作,但也可以轻松地挖掘旧的分支,以查看所做的更改,而无需进行大量的修订版考古.
SVN 1.5引入了"mergeinfo"属性,允许您轻松地将分支重新集成到主干,同时支持重复的分支更新.这允许您创建一个分支,从主干中perodiocally更新分支,最后将分支重新集成到主干(svn merge --reintegrate).例如,当您创建分支以修复错误或开发功能时,这非常有用.
mergeinfo的实现方式不允许您进行后续重新集成,因此这就是建议您不要重用分支的原因.
当您想要在发布分支上开发错误修复并定期重新集成到主干时,这对于"发布分支"是有问题的.
如果要重用分支,通常的模式是创建一个具有相同名称的新副本(分支):
当您"重新创建"分支时,在步骤3中,将恢复mergeinfo,以便您可以在将来重新集成而不会出现问题.
回到你的问题:"所以我的问题是,一旦不再需要分支,是否应该删除或保留?" 我会保留分支,因此它将在HEAD修订版中可见.分支机构消失令人困惑("嘿,上周我们是否为0.1版本创建了一个分支?""嗯,我不记得了......检查回购历史")
至于重用分支,我会使用约定永远不会重用分支,如果你需要"添加一些分支",重新创建它.但在我看来,使用不同的分支名称要清楚得多.您可能可以使用命名约定来标识分支.例如,原始文件将是branches/Issue-1和后续扩展分支/ Issue-1.0,branches/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