SVN - 如何创建一个带有"single repository multiple project layout"的 Subversion 仓库?



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

c:repositories
 +- MyProjectRepository
     +- project1
          +--- trunc
          +--- branches
          +--- tags
     +- project2
          +--- trunc
          +--- branches
          +--- tags
     +- project3
          +--- trunc
          +--- branches
          +--- tags

文档只允许我从生成以下布局的模板创建一个新的存储库:

c:repositories
 +- MyProjectRepository
     +-- project1
          +--- trunc
          +--- branches
          +--- tags

如何实现第一个布局?即单个存储库中的多个项目。

编辑

这3个目录是否被视为特殊目录?例如,如果我手动创建目录结构,subversion会识别这些目录吗?即,如果我在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 import,这是我一直在做的事情,似乎是启动新存储库甚至稍后添加项目的简单方法。

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

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

你最终会得到这样一个文件夹:

structure
    project1
        branches
        tags
        trunk
    project2
        branches
        tags
        trunk
    project3
        branches
        tags
        trunk

然后,您只需要执行svn import structure http://path-to-your-repository

编辑:查看此页面了解有关如何使用svn import命令的更多详细信息http://svnbook.red-bean.com/en/1.7/svn.tour.importing.html.

最新更新