SVN-如何创建一个带有;“单一存储库多项目布局”;?

SVN-如何创建一个带有;“单一存储库多项目布局”;?,svn,version-control,collabnet,Svn,Version Control,Collabnet,我刚刚安装了Subversion(Collabnet)。文档解释了如何创建我已经创建的存储库,但我不知道如何创建特定的布局。我想创建这个布局 c:\repositories +- MyProjectRepository +- project1 +--- trunc +--- branches +--- tags +- project2 +--- trunc +--- bran

我刚刚安装了Subversion(Collabnet)。文档解释了如何创建我已经创建的存储库,但我不知道如何创建特定的布局。我想创建这个布局

c:\repositories
 +- MyProjectRepository
     +- project1
          +--- trunc
          +--- branches
          +--- tags
     +- project2
          +--- trunc
          +--- branches
          +--- tags
     +- project3
          +--- trunc
          +--- branches
          +--- tags
文档仅允许我从生成此布局的模板创建新存储库:

c:\repositories
 +- MyProjectRepository
     +-- project1
          +--- trunc
          +--- branches
          +--- tags
如何实现第一个布局?i、 e.单个存储库中的多个项目

编辑 这3个目录是否被视为特殊目录?例如,如果我手动创建目录结构,subversion会识别这些目录吗?i、 e.如果我在project3中创建标记,标记链接将与project3/标记关联


谢谢

Subversion将接受您想要的任何目录结构。只需从存储库的顶层签出您创建的存储库,然后删除现有结构。然后,您可以设置您喜欢的目录(在任何配置中),然后将新结构提交回存储库


注意:这只适用于新(空)存储库。已经有更改的存储库会有点混乱,但想法仍然是一样的。

您也可以使用

svn mkdir <repo>/MyProjectRepository -m "project1 tree created"
svn mkdir <repo>/MyProjectRepository/project1 -m "project1 tree created"
svn mkdir <repo>/MyProjectRepository/project1/trunk -m "project1 tree created"
svn mkdir <repo>/MyProjectRepository/project1/branches -m "project1 tree created"
svn mkdir <repo>/MyProjectRepository/project1/tags -m "project1 tree created"
svn mkdir/MyProjectRepository-m“project1树已创建”
svn mkdir/MyProjectRepository/project1-m“project1树已创建”
svn mkdir/MyProjectRepository/project1/trunk-m“project1树已创建”
svn mkdir/MyProjectRepository/project1/branchs-m“project1树已创建”
svn mkdir/MyProjectRepository/project1/tags-m“project1树已创建”

我知道这是一个老话题,但我注意到没有人提到使用
svn import
,这是我一直做的事情,似乎是启动新存储库甚至以后添加项目的简单方法

首先,使用
svnadmin create
创建存储库

然后,创建一个容器文件夹(我们称之为
结构
),并将要导入存储库的确切结构放入该文件夹中

您将得到如下文件夹:

\structure
    \project1
        \branches
        \tags
        \trunk
    \project2
        \branches
        \tags
        \trunk
    \project3
        \branches
        \tags
        \trunk
然后,您只需执行
svn导入结构http://path-to-your-repository


编辑:有关如何使用
svn import
命令的更多详细信息,请查看此页面。

然后它会自动将trunc/branchs/tags目录识别为“特殊”目录吗?Subversion不会真正将任何目录识别为特殊目录(在大多数实现中,
.svn
除外)。所有“特殊”目录只不过是约定,它们的使用完全取决于用户对它们做什么。有些客户可能会对他们做一些特殊的事情,但这不是必需的。一般来说,用户只需查看他们正在处理的项目的
Trunk
目录,并在需要时切换到特定的分支或标记。这与我的建议相同,但命令行和svn会自动添加目录,对吗?如果我正确理解您的建议,要签出主干或任何其他分支,它们必须首先存在于服务器中。asker的存储库中缺少这些目录,因为他刚刚设置了服务器,正如您所说的,这些目录不是特殊目录,只是一种约定。另外,
.svn
对于unix隐藏文件也是典型的,在windows中,您可能有一个正常的
svn
dir开关被隐藏。执行
svn mkdir/proj
直接在服务器上创建一个目录。。。无需稍后提交。根据
我的理解,文档仅允许我从生成此布局的模板创建一个新的存储库
是OP已经具有作为存储库的第二个结构。你对
.svn
目录的看法是正确的,我在对我答案的评论中提到的目录可能会有所不同。。。我错过了这个产生这个布局的部分。。。所以你的建议是正确的!