我已经创建了一个名为 v1.5 在树枝上。经过一些测试,我发现了一些错误,似乎我必须将这些更改传播到 tag/v1.5.但我看到一些评论并不建议更新或合并标签的这种做法。

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

有帮助吗?

解决方案

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

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

这是一篇更长的文章, ,我上面描述的东西在这里被称为"稳定发布模型",有一个很好的图像向您展示在哪里发生的事情。还有替代方案和长时间的讨论。我喜欢那些图表, 这里还有一个, ,但它有点混乱,箭头不应该交叉标签,标签应该永远是一个死胡同。

其他提示

最佳做法是不删除 tags 事实上,标签并不意味着被触摸它们只是标签,而事实是,一切都是任何svn存储库中的文件夹,实践是通常工作 trunk, ,更新 branches 在bug的情况下,并离开 tags 作为以前工作历史的标记以供参考,分支也可以用于单独的工作,最好的做法是使用单个主线单主干模式,并尽可能避免分支(持续交付集成),但在你的情况下,我会分支fro标签并更新它,然后合并回主干。 tags 是要留下来的。我要做的是复制 tag 成一个 branch 使用分支名称并在那里进行更新。然后我会 merge 它回到 trunk.为 自动合并 svn有一个很酷的实用程序叫做 自动化公用事业

谷歌和facebook采用了基于主干的开发。开发在上面的材料中,这些Googlers谈到了在HEAD上工作,并且checkins在任何时候都发生在HEAD上。Ashish在Q&A部分中说了几次主干,他确实提到了避免正在进行的开发分支(与发布本身无关)。所以这是官方的,基于主干的开发(TBD)是谷歌所做的,他们如何扩展它!(http://paulhammant.com/2013/05/06/googles-scaled-trunk-based-development/)

SVN中的标签是(常规)RO子树。如果您在创建标记代码后发生了更改,则必须创建 新标签 从更改的代码

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