SVN:主干,分支和标签

时间:2010-09-28 18:21:17

标签: svn tortoisesvn tags branch trunk

这是一个月我试图找出问题的最佳解决方案,这是最好的解决方案。我想知道你是否同意。

我们正在开发一组互连的Web应用程序。我们将每个应用程序视为独立于其他应用程序的单一解决方案。每个应用程序都由不同的项目组成,但这并不重要。

我们用于开发主干新功能。每当我们发布一些实时内容时,我们都会使用版本名称标记trunk版本。例如,假设第一个主干版本标记为1.0.0。当我们开发实现(即我们正在开发1.1.0)时,生产版本会出现一系列错误。我们想要做的是checkout标签1.0.0并纠正1.0.1版本的错误。

现在我们想要完成的是标记EACH修订版本。换句话说,我们希望能够拥有1.0.0,1.0.1,1.0.2 ......

的完美工作副本

现在这是我的解决方案,我想知道你是否同意。

  1. 我将标记的1.0.0版本签出到本地/标签文件夹
  2. 我将此版本分支到/branches/1.0.1存储库文件夹
  3. 我将我的新分支签出到本地/分支机构文件夹
  4. 我更正了分支1.0.1
  5. 上的错误
  6. 在x提交后,一切正常,我将这个新版本标记为/tags/1.0.1
  7. 每个新bug /新版本的

    等等。我试过了,如果我签出/ tags文件夹,我可以看到所有的版本,perfectyl工作。

    现在当我准备好1.1.0时,我应该使用“合并一系列修订”选项合并最后一个标签(或分支,如果一切正确,它们应该在最后一样)。当一切都合并后,我应该有一个完全正常的1.1.0版本,过去修正了修订版。编译,测试然后发布,显然,将其标记到服务器上的/tags/1.1.0文件夹。

    你怎么看? 谢谢, 马可

4 个答案:

答案 0 :(得分:2)

通常所有的开发都是在trunk上进行的,trunk是你发布的基础。您可以使用分支来稳定代码以准备发布,修补发行版或实现无法在主干上开发的功能,原因如下。

当使用分支进行稳定或修补版本时,错误的修复或应该进入稳定分支的更改都是在主干上开发的,并选择性地合并到分支。

使用功能分支时,您提交分支,然后合并回主干(可能从那里到稳定/补丁分支。

简短的故事,我在开发周期中错过了主干,我想知道你如何确保所有更改最终都在主干中,因为这是你的下一个主要功能发布将从/应该从哪里开始的。

答案 1 :(得分:1)

这看起来是一个非常好的过程,除了你的生产分支上的bug修复很可能也需要反映在trunk中。因此,不应该在最后将所有合并到trunk中,因为你已经按照你的方式完成了它。

否则,您似乎正确地使用了分支和标签,因此对此表示赞赏。我已经看到太多的项目无法在源代码控制中识别当前(或其他一些)生产版本(如果你需要修复或回滚,这是必不可少的)。在我看来,没有任何借口。

答案 2 :(得分:1)

您所描述的内容听起来像是标记和分支给我的正常程序。这就是我使用subversion的方式,它运行得非常好。

答案 3 :(得分:0)

听起来不错。

根据已发布的修补程序的数量,我不会为每个次要版本创建分支而烦恼。创建这些,与人们沟通什么结帐/在哪里检查,合并等。冲洗& amp;重复。

每个主要版本都有一个分支,并将其用作“维护”分支,对我们来说效果很好。

以下是您感兴趣的流程说明: svn deployment strategies for multiple groups of developers (not co-located) working on different components of the same project

定义分支策略并仅在必须执行不适合当前策略的操作时创建新分支。有助于限制分支。