我在Subversion(以及一般的存储库)讨论中经常看到这些词。 在过去的几年里,我一直在我的项目中使用SVN,但是我从来没有掌握这些目录的完整概念。
它们是什么意思?
我在Subversion(以及一般的存储库)讨论中经常看到这些词。 在过去的几年里,我一直在我的项目中使用SVN,但是我从来没有掌握这些目录的完整概念。
它们是什么意思?
当前回答
我不太确定“标签”是什么,但分支是一个相当常见的源代码控制概念。
基本上,分支是在不影响主干的情况下对代码进行更改的一种方式。假设您想要添加一个相当复杂的新功能。您希望能够在进行更改时检入更改,但在完成该特性之前不希望它影响trunk。
首先创建一个分支。这基本上是创建分支时的主干副本。然后在分支中完成所有工作。在分支中所做的任何更改都不会影响trunk,因此trunk仍然可用,允许其他人继续在那里工作(比如做错误修复或小的增强)。一旦你的特性完成了,你就可以把分支集成回主干中。这将把所有的更改从分支移动到主干。
人们为分支使用了许多模式。如果您有一个同时支持多个主要版本的产品,通常每个版本都是一个分支。在我工作的地方,我们有一个QA分支和一个生产分支。在向QA发布代码之前,我们将变更集成到QA分支,然后从那里进行部署。当发布到产品时,我们从QA分支集成到生产分支,所以我们知道在生产中运行的代码与QA测试的代码是相同的。
这里是维基百科上关于分支的条目,因为它们可能比我能更好地解释事情。:)
其他回答
主干:在敏捷的每一个冲刺阶段结束后,我们会推出一个部分可交付的产品。这些释放物被保存在后备箱里。
分支:每个正在进行的冲刺的所有并行开发代码都保存在分支中。
标签:每次我们发布一个部分可发货的产品的测试版,我们都会为它做一个标签。这为我们提供了在那个时间点可用的代码,允许我们在开发过程中的某个时间点需要时回到那个状态。
在SVN中,标记和分支非常相似。
标签=在时间上定义的片段,通常用于发布
分支=在开发过程中定义的片段,通常用于1.0、1.5、2.0等主要版本,然后在发布时标记分支。这允许您继续支持产品版本,同时在主干中进行突破性的更改
Trunk =开发工作空间,这是所有开发应该发生的地方,然后从分支发布合并回来的更改。
它们没有任何正式的含义。文件夹就是文件夹 SVN。它们是组织项目的一种普遍接受的方式。
The trunk is where you keep your main line of developmemt. The branch folder is where you might create, well, branches, which are hard to explain in a short post. A branch is a copy of a subset of your project that you work on separately from the trunk. Maybe it's for experiments that might not go anywhere, or maybe it's for the next release, which you will later merge back into the trunk when it becomes stable. And the tags folder is for creating tagged copies of your repository, usually at release checkpoints.
但正如我所说,对于SVN,文件夹就是文件夹。分支、主干和标签只是一种约定。
我随意使用“复制”这个词。SVN实际上并不完全复制存储库中的内容。
这就是关于软件开发的事情,没有一致的知识,每个人似乎都有自己的方式,但这是因为它是一个相对年轻的学科。
这是我简单的方法,
trunk - trunk目录包含最新的、已批准的和合并的工作主体。与许多人所承认的相反,我的箱子只用于干净、整洁、合格的工作,而不是一个开发区域,而是一个释放区域。
在某个给定的时间点上,当主干似乎已经准备好释放时,它就会被标记并释放。
分支——分支目录包含实验和正在进行的工作。分支下的工作一直停留在那里,直到被批准合并到主干中。对我来说,这是所有工作完成的区域。
例如:我可以有一个迭代-5分支用于产品的第5轮开发,可能有一个原型-9分支用于第9轮实验,等等。
tags—标签目录包含已批准的分支和中继发布的快照。每当一个分支被批准合并到主干中,或者一个发布是由主干组成的,一个被批准的分支或主干发布的快照就会在标记下生成。
我想有了标签,我可以很容易地在时间里来回跳转到感兴趣的点。
中继目录可能是您最熟悉的目录,因为它用于保存最新的更改。你的主要代码库应该在trunk中。
分支目录用于保存分支,无论它们是什么。
标签目录主要用于标记一组特定的文件。您可以对发布版本这样做,其中您希望“1.0”是这些修订版本的这些文件,“1.1”是这些修订版本的这些文件。通常,标签制作完成后就不需要修改了。有关标签的更多信息,请参见第4章。分支和合并(在Subversion版本控制中)。