我在分支上创建了一个名为v1.5
的标记。经过一些测试后,我发现了一些错误,似乎我必须将这些更改传播到tag/v1.5
。但我看到一些评论没有提出更新或合并标签的做法。
我的问题是处理这种情况的最佳方法是什么。可能会删除标记并从分支头修订中重新创建它?
答案 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子树。如果您在创建代码后进行了更改,则必须从更改的代码
创建新代码