SVN(乌龟) - 如何处理这种情况?

时间:2012-03-13 05:07:11

标签: svn version-control tortoisesvn

我正在delphi 7Tortoise svn开展项目,该项目是一种调查工具。 我们目前正在开发一个新版本的myproject 1.8,在2个月内我们将从myproject 2.0开始。

注意:我们继承了现有的svn。所以这不是我们的设计

方案: 我的c:\中只有一个文件夹c:\project\myproject\,我们是初创公司,所以我们没有从项目开始,我们从myproject 1.5开始处理..但现在{{1}代码已消失,并已转入myproject 1.5 ..因此,当我们开始使用myproject 1.6时,我们创建了一个文件夹myproject 1.7,并将整个代码复制到该文件夹​​中,并以c:\project\myproject\NV1.6Code开头。 ..现在我不知道如何在当前状态下维护myproject 1.7myproject 1.7.1myproject 1.7.2等子版本。

现在我们即将开始使用`myproject 1.6.4,我们不知道如何在subversion控件中启动它 因为那时myproject 1.8也将很快到来。

结构: 路径:myproject 2.0

如图所示,C:\projects\myproject目录的版本为1.6,外部的所有目录都是版本NV1.6code ..

不是个好主意? 我不知道这会是一个好主意

AIM :我如何正确处理上述混乱? 请帮助我如何在我的情况下充分利用陆龟SVN来维护  版本

  1. 1.7 code
  2. myproject version 1.6 ( then the subversion like 1.6.1 , 1.6.2, 1.6.3)
  3. myproject version 1.7 ( then the subversion like 1.7.1 , 1.7.2, 1.7.3)
  4. myproject version 1.8 ( then the subversion like 1.8.1 , 1.8.2, 1.8.3)

3 个答案:

答案 0 :(得分:3)

您应该使用分支和标记功能来克服您的问题。但请记住,为每个版本装箱分支确实使工作变得复杂,您无法处理他们的更改。请记住:

  • 尽量减少分支机构的数量。 (通常在你的项目中2或3就足够了)
  • 对于每个已发布的版本,请创建一个标记。
  • 避免在源控件中有很多分支,没有适当的机制来合并更改。
  • 如果与开发时间相比花费了太多时间来合并您的更改,那么分支结构就会出现问题。
  • 如果您决定拥有分支机构,请不要尽可能推迟合并。应禁止任何同时合并所有分支的所有更改(大爆炸合并)的尝试。
  • 团队不应该没有明显的理由创建很多分支。
  • 如果在系统中创建了任何分支(对或错),则当工作结束时,应将其更改合并回其父分支(如果可能)。
  • 团队成员不应该在分支,合并或构建新基线的过程中停止开发活动。
  • 不要使用分支来划分开发团队成员,而不是划分他们正在执行的工作。

请查看this answer了解详情。

答案 1 :(得分:2)

有两种方法可以做到这一点:使用分支或标记功能。

一般来说,我喜欢使用tag来指定一个发布点,并且开发以相对线性的方式继续进行(1.6到1.7,1.7到1.8等)

但是,如果出于某种原因说你发布了1.6并且主要开发进入了1.7,但你想继续对1.6进行小的改动(如1.6.1,1.6.2等),那么创建一个可能是有益的。分支。

同时使用这两个功能也很完美。

答案 2 :(得分:0)

You should read the free SVN book - 特别是关于分支。