我在Subversion(以及一般的存储库)讨论中经常看到这些词。 在过去的几年里,我一直在我的项目中使用SVN,但是我从来没有掌握这些目录的完整概念。
它们是什么意思?
我在Subversion(以及一般的存储库)讨论中经常看到这些词。 在过去的几年里,我一直在我的项目中使用SVN,但是我从来没有掌握这些目录的完整概念。
它们是什么意思?
当前回答
对于熟悉GIT的人来说,GIT中的master相当于SVN中的trunk。
分支和标记在GIT和SVN中有相同的术语。
其他回答
在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实际上并不完全复制存储库中的内容。
One of the reasons why everyone has a slightly different definition is because Subversion implements zero support for branches and tags. Subversion basically says: We looked at full-featured branches and tags in other systems and did not found them useful, so we did not implement anything. Just make a copy into a new directory with a name convention instead. Then of course everyone is free to have slightly different conventions. To understand the difference between a real tag and a mere copy + naming convention see the Wikipedia entry Subversion tags & branches.
我认为一些混淆来自标记概念和SVN中的实现之间的差异。对于SVN来说,标签是一个分支,它是一个副本。修改标签被认为是错误的,事实上,像TortoiseSVN这样的工具会警告你,如果你试图用../tags/..在路上。