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

Pos*_*Guy 5 svn tortoisesvn

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

M4N*_*M4N 11

正如其他人所说,不需要拥有主干/分支/标签.这些文件夹对颠覆没有特殊意义,它只是一种最佳实践,如果它符合您的需要,您可以使用它.

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


更新(回复您的评论):

最佳实践表明,您的存储库中应该包含"trunk","branches"和"tags"文件夹.使用这些文件夹的一种方式(可能是最常见的方法)是:

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

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

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


dj_*_*ult 6

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

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

但是,正如Greg所说,你肯定希望根目录下的SOME目录,但不需要特定的结构.