合并/不合并svn标记的最佳实践

时间:2014-01-09 08:43:51

标签: svn svn-merge

我在分支上创建了一个名为v1.5的标记。经过一些测试后,我发现了一些错误,似乎我必须将这些更改传播到tag/v1.5。但我看到一些评论没有提出更新或合并标签的做法。

我的问题是处理这种情况的最佳方法是什么。可能会删除标记并从分支头修订中重新创建它?

3 个答案:

答案 0 :(得分:2)

标签,分支等对Subversion本身毫无意义,它们只是文件夹,你可以做任何你想做的事情。但是,有很好的做法,标签意味着你永远不会改变的东西。你应该有一个工作流程并坚持下去。

例如,我们在后备箱中进行了新的开发。当它准备就绪时,我们创建一个分支,如1.5,然后创建标签,如1.5.1,1.5.2,1.5.3等。我们添加错误修复并从中创建新标签,我们不添加新功能到分支机构,我们永远不会改变标签。然后,当有新的发展时,我们将错误修正从分支合并到主干。这是一个非常常见的工作流程。

Here's a longer article,我上面所说的“稳定释放模型”在这里,有一个很好的图像可以告诉你在哪里发生了什么。还有其他选择和长期讨论。我喜欢这些图表here's another one,但它有点令人困惑,箭头不应该越过标签,标签应该永远是死胡同。

答案 1 :(得分:1)

最佳做法是不删除tags实际上标签不打算被触及它们只是标签,而真实的是所有svn存储库中的所有文件夹,通常是在{ {1}},如果出现错误,请更新trunk,并将branches作为以前工作历史记录的标记供参考,分支也可以用于单独的工作,最佳做法是使用单个工作主线单主干模式和尽可能避免分支(连续交付集成),但在你的情况下,我会分支标签并更新它,然后合并回主干。 tags意味着留下来。我要做的是将tags复制到带有分支名称的tag并在那里进行更新。然后我会branch回到merge。对于自动合并,有一个名为automerger utility的svn的酷实用程序

谷歌和Facebook采用了基于干线的开发。开发在上面的材料中,这些Google员工谈到了HEAD的工作,并且这些签名一直发生在HEAD上。 Ashish在Q& A部分中说了几次,然后他确实提到了避免分支进行持续开发(与发布本身无关)。所以它是官方的,基于主干的开发(TBD)是谷歌所做的,男孩们会扩展它! (http://paulhammant.com/2013/05/06/googles-scaled-trunk-based-development/

答案 2 :(得分:0)

SVN中的标签是(传统上)RO子树。如果您在创建代码后进行了更改,则必须从更改的代码

创建新代码