【问题标题】:Managing branches in subversion在颠覆中管理分支
【发布时间】:2011-11-07 15:35:49
【问题描述】:

我认为我做的不对。我正在使用颠覆作为我们组织网站的 vcs。我是唯一的开发人员,我使用 bugzilla 作为我的错误跟踪系统。我使用 bugtraq 属性将 bugzilla 和 svn 松散耦合,这样我就可以从我的 cmets 链接到 bugzilla。我现在正在做的是每当我收到在网站上执行任何工作的请求(增强、修复、内容更改)时,我都会在 bugzilla 中创建一个错误 [xx],然后创建一个名为 bug[xx] 的分支。完成任务后,我手动将分支更改导出到我们的 beta 站点,对更改进行审查和验证,然后我将分支合并回主干,使用 bugtraq 属性指示错误#。

这很好用,除非我有不止一两个更改。如果我为 10 个工作请求创建了 10 个分支,我想知道如何轻松区分哪些已经合并到主干中,哪些没有。如果我应该使用看起来很疯狂的 mergeinfo 属性...

我不想从颠覆中切换,所以不建议这样做。

【问题讨论】:

    标签: svn version-control branch bugzilla


    【解决方案1】:

    当分支重新集成到主干中时,为什么不直接删除分支?当重新集成功能分支时,您应该做的事情(在一般情况下)。所以诊断很简单:如果分支存在,它还没有被重新集成。

    【讨论】:

    • 嗯。这非常好,而且非常简单。让我思考一下。
    【解决方案2】:

    您的工作流程对我来说似乎相当不错。但是,合并回主干后,您不再需要错误分支,因此将其删除。这样一来,您只会将分支数量作为已打开的错误。

    如果需要,您可以随时取回分支,但它不会把事情弄得一团糟。

    【讨论】:

      【解决方案3】:

      在我看来,为每个错误创建一个分支并不是一个好习惯。正如分支最佳实践所提到的,您应该在两种情况下创建分支:

      1. 当您开发一个可能需要很长时间的新功能(功能分支)并且
      2. 当您想要保留上一个发布版本(发布分支)时。

      看来你只需要第二个分支。为了更清楚,请看下面的图片:

      开发分支是保存在您的主干目录下的分支(绿线)。您可以创建一个名为发布分支(红线)的分支,并将要发布的更改合并到其中。这样,只有选定的更改才会进入您的发布版本。如果您正在开发一个可能需要 1-2 周以上的新功能,请创建一个功能分支(蓝线)并在完成后合并回更改。功能分支完成后可能会被删除。

      所以,我建议您只拥有一个称为发布分支的分支。当您收到错误时,请在您的开发线中进行更改。当测试正常时,您可以将更改合并回发布行。这样,您可以只发布您想要的那些功能。此外,通过查看您的发布行历史记录,您可以找到哪些更改已合并到您的发布行中。

      【讨论】:

      • 在您投入生产前 5 分钟,您会接到一个电话,要求您不要部署您所做的 5 个错误修复中的第 3 个错误。你现在已经把你的 bug 放到了 svn 的一个版本中。现在尝试删除一个错误。
      • 在这种情况下,您应该将您的发布行恢复到以前的版本并重新合并所需的错误修复。你的风格也存在同样的问题。假设在您投入生产前五分钟,您接到一个电话,要求您不要部署您所做的 6 个错误修复中的第 4 个错误。但是您已经将所有更改合并到为每个错误创建的 6 个不同分支中!!!你现在该怎么办????
      • 另外,如果你的bug修复包含了同一个地方的改动,那么合并过程真的是个大问题。但是将所有修复都放在同一行中,合并过程就不那么痛苦了。
      • 忘了说。假设您正在向项目中添加新功能。在工作进行中,您收到了修复错误的紧急请求。如果您创建一个分支并修复其中的错误,您如何生成不包含不完整更改而仅包含错误修复的版本???看看msdn.microsoft.com/en-us/library/aa730834%28v=vs.80%29.aspx……很有意思。
      • 我看到了你们中的一些观点。我不能改为为每个错误创建一个分支。然后是发布分支?这样我就可以决定发布需要哪些错误?然后在我合并到发布分支后,我只需将发布合并到主干?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多