SVN默认文件夹 - 必须使用它们吗?

时间:2009-04-21 02:50:50

标签: svn tortoisesvn

我在SVN中看到的存储库至少没有在客户端上创建本地trunk,branches和tags文件夹。那么SVN使用所需的默认文件夹(我使用的是乌龟)还是什么?我不明白为什么有些人拥有这些文件夹,但有些人没有在存储库的某些实现中。

4 个答案:

答案 0 :(得分:11)

正如其他人所说,不需要有trunk / branches /标签。这些文件夹对颠覆没有特殊意义,只是符合您需要的最佳实践。

但是既然你提到了TortoiseSVN,那么有一个小细节:当你尝试提交/ tags 的子文件夹时,Tortoise会发出警告。它强制标记在创建后不会被修改(另一种最佳实践)。


更新(回复您的评论):

最佳做法是说您的存储库中应该包含“trunk”,“branches”和“tags”文件夹。使用这些文件夹的一种方式(可能是最常见的方法)是:

  • trunk 是主要开发的地方。
  • 标记包含重要修订版/源代码版本的快照(副本)(例如1.0,1.1,2.0等版本)。
  • 分支用于维护旧版本,例如您的产品是在版本2上,那么您需要修复1.0版中的错误(然后您可以将1.0标记复制到新分支并在那里进行修改)。

现在要颠覆,所有文件夹(主干,标签,分支)都是“普通”文件夹。它们现在具有特殊意义,而且颠覆不会对它们有任何不同(例如,这意味着您可以修改“/tags/1.0”中的内容)。

TortoiseSVN会在您尝试提交标记时通过警告您来强制执行最佳做法(因为通常您希望保留标记,因为它们可以随时重建旧版本的产品)。

答案 1 :(得分:6)

绝对不需要。许多公司认为它是最佳实践,并且拥有主干/分支目录适用于许多软件环境,并且对来自cvs等的人来说似乎更为熟悉。

一个不太理想的例子是在Subversion中存储网站。我工作过的几家公司都有Devel和Live目录。工作在Devel目录中完成,并在绿灯亮起时合​​并到Live目录中。

正如Greg所说,你肯定想要根目录下的SOME目录,但不需要特定的结构。

答案 2 :(得分:4)

由于在Subversion中标记或分支的唯一方法是在其他树中进行复制,省略标准的trunk / tags / branches目录会阻止您在“外部”的位置创建存储库的副本你的项目目录。如果您想要在没有默认目录的情况下进行标记或分支,那么您最终将创建它们并移动项目。

答案 3 :(得分:0)

这不能回答你的问题,(其他人已经有)但是如果你只想要主干,只需在初步获取/结账时指定。