【问题标题】:Should you use branches in subversion if only one person is working on a project?如果只有一个人在做一个项目,你应该在颠覆中使用分支吗?
【发布时间】:2010-11-20 18:51:33
【问题描述】:

我刚开始在 C# 项目中使用 Subversion。我一个人在做这个项目,但我试图把自己当作是在一个小组中工作来获得自己的学习经验。

据我了解,使用 subversion 的典型方法是拥有一个可以始终构建的主干文件夹。然后在新分支中创建主要更改,然后在完成后将其合并回主干。因此,不同的团队成员可能同时处理许多分支。

但是,如果我自己工作,建立一个分支有什么意义吗?假设我在 HEAD 中的第 100 版。我将在修订版 101 创建一个分支,然后继续处理该分支直到修订版 110。现在我可以将 110 合并回主干,但项目中没有其他人,因此不会有任何变化树干合并回。我只是重新合并到我最初创建分支的第 100 版。

【问题讨论】:

    标签: svn branch trunk


    【解决方案1】:

    我认为应该始终使用分支,您需要将实际代码与基础代码分开,例如当您需要为某个问题或某事尝试一个牵强的解决方案时。通过分支,您可以将问题和解决尝试分开,并保持版本控制。

    【讨论】:

      【解决方案2】:

      分支机构与有多少人在从事一个项目无关。分支用于替代开发流,例如不同的功能集、硬件目标或客户端。

      如果 100 个人在处理一个可交付成果,他们应该使用同一个分支。如果一个人支持十几个不同的可交付成果,他应该有十几个分支机构。

      【讨论】:

      • 我的想法是,我的主干始终是一个工作版本,当我进行重大更改和破坏时,我通常会在分支中工作。作为一个人,我不必担心协作问题,但是如果我没有分支,当我想向某人展示最新的工作版本时,我必须记住更新回某个特定的修订号。如果我在分支工作,那么我知道我总是可以在主干上获取最新版本。
      【解决方案3】:

      如果只有您在项目上工作,创建分支似乎没有太多意义 - 毕竟您可以使用修订版回滚。

      但是,如果您想做一些重要的和实验性的事情并想尝试一些事情,那么您可以使用分支来隔离您的更改并保留主干。

      您可以像这样完全在主干之外工作,然后将发布标签或分支用于历史目的......以及其他分支用于实验工作。

      【讨论】:

        【解决方案4】:

        分支(相对于标签)是代码的可维护版本。即使是单个开发人员,您也可能希望维护多个版本的代码(例如,将错误修复迁移到旧版本)。
        SVN 书列出了 SVN 分支的两个最常见用例here
        两种方法的分支策略都与项目中的开发人员数量没有直接关系。
        除非您正在从事短期项目(例如学术、单一版本、项目),否则请尝试使用这些策略之一。管理开销足够低,可以让您以后的生活更轻松。

        【讨论】:

          【解决方案5】:

          我保留 2 个分支:开发和主干,因为您永远不知道何时必须对生产进行快速修复。在将它们移植到生产环境之前,我可能会花 1-3 周的时间来开发新功能。与此同时,我可能不得不对生产进行修复。通过保留 2 个分支,我可以轻松地仅部署错误修复。

          【讨论】:

            猜你喜欢
            • 2021-05-11
            • 2012-04-02
            • 1970-01-01
            • 2010-12-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-28
            • 1970-01-01
            相关资源
            最近更新 更多