我是否设置了subversion Repository Wrong?

时间:2012-01-27 10:09:06

标签: git svn version-control repository

当我们最初设置版本控制时,我们只有非常有限的时间和基本知识如何设置它。我们不了解分支,中继或标签。我们所处理的只是Checkout,Update和Commit(哦,偶尔也会发生冲突)。

但是现在,我们已经进入了一个阶段,我们认为我们需要更好地理解它,并且可能会重新思考我们的存储库的设置和工作方式。

目前,我们的服务器上有4个不同的文件夹,每个文件夹都包含一个结帐。这4个区域具有用于生产的源代码。其中2个结账直接作为错误修复结帐区域。其他2个用作开发检查。团队成员可以在更长的开发阶段工作的地方。完成开发后,他们将其提交到存储库,从而将生产代码更新到所有其他签出。

但是,在阅读有关分支时,听起来似乎缺少这里的水平。一个行李箱,我认为它叫它。

有人可以给这个newb一点快速崩溃的问题,如何正确的方法是为一个团队或开发人员设置一个存储库,他们需要一种方法来快速修复生产代码,但同时运行几个发展?

3 个答案:

答案 0 :(得分:1)

以这种方式思考:您需要一个“主干”,它是所有产品代码的主版本。但是你不想通过一直对它进行更改来搞砸这一点 - 有一天你会想要获取最新版本的产品,而且恐怖的是,开发人员已经完成了不做更改的一半还没工作最重要的是,想象一下你发现最新版本存在一些问题,你需要获取最后一个版本(你知道的版本)。

嗯,树枝就是这里的答案。在subversion中有2种不同类型的分支,称为分支和标记。它们实际上是一样的,但人们称它们为不同的名称,以区分它们的用途。

您拥有自己的主干,如前所述,但现在当开发人员想要进行更改时,您首先要将主干的副本复制到新分支中。开发人员可以安全地在该分支上工作。完成后,将更改复制回主干。 Svn(和所有其他人)都有工具来帮助将更改合并到主干上。

当你想要保留“完成”版本时,你会做同样的事情 - 将它复制到具有唯一名称的标签分支(例如版本1)。不同之处在于您永远不会更改此分支。它是固定的,不变的,并为您提供了一种识别构成该版本的代码(以及仅代码)的方法。

就是这样。您可以有多个分支进行开发,您可以从标记版本分支以进行错误修正,或者您始终可以从主干分支以创建错误修正 - 您如何执行这些操作取决于您希望如何工作。

答案 1 :(得分:0)

使用图形可视化解释分支的此资源可能对您有用:http://nvie.com/posts/a-successful-git-branching-model/

答案 2 :(得分:0)

首先尝试阅读一些文章。然后回答更具体的问题。我认为这篇文章很好:http://nvie.com/posts/a-successful-git-branching-model/

简而言之,您将源代码作为一大堆补丁进行管理。您作为提交所做的每个更改都是一组修补程序。然后,您可以将这些补丁组合成特定的产品版本。此外,VCS允许保留所有历史记录,并为您提供每个已发布版本的可重复性。