【问题标题】:SVN - How do i create a subversion repository with a "single repository multiple project layout"?SVN - 如何创建具有“单个存储库多项目布局”的颠覆存储库?
【发布时间】:2012-02-04 08:27:19
【问题描述】:

我刚刚安装了 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个目录是否被视为特殊目录?例如,如果我手动创建目录结构,颠覆会识别这些目录吗?即如果我在 project3 中创建标签,标签链接将关联到 project3/tags。

谢谢

【问题讨论】:

    标签: svn version-control collabnet


    【解决方案1】:

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

    注意:这仅适用于 new(空)存储库。已经更改的存储库会有点混乱,但想法仍然相同。

    【讨论】:

    • 它会自动将 trunc/branches/tags 目录识别为“特殊”目录吗?
    • Subversion 并没有真正将 any 目录识别为特殊目录(在大多数实现中,.svn 除外)。所有“特殊”目录都不过是约定,它们的使用完全取决于用户对它们的操作。一些客户可能对他们做一些特殊的事情,但这不是必需的。一般来说,用户只需查看他们正在处理的项目的Trunk 目录,并在需要时切换到特定的分支或标签。
    【解决方案2】:

    你也可以使用

    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自动添加目录,对吧?
    • 如果我正确理解了您的建议,检查主干或任何其他分支,它们必须首先存在于服务器中。由于他刚刚设置了服务器,因此询问者的存储库中缺少这些目录,并且正如您所说,这些不是特殊目录,它只是一个约定。 .svn 也是 unix 隐藏文件的典型代表,在 Windows 中,您可能有一个普通的 svn 目录,女巫被隐藏了。
    • svn mkdir &lt;repo&gt;/proj 直接在服务器上创建一个目录...不需要以后提交。
    • 我的理解是,基于The documentation only allows me to create a new repository from a template which produces this layout,OP 已经将第二个结构作为存储库。您对.svn 目录的看法是正确的,我在对我的回答的评论中提到的目录可能会有所不同。
    • 我的错...我错过了这部分which produces this layout xD ...所以你的建议是正确的!
    【解决方案3】:

    我知道这是一个老话题,但我注意到没有人提到使用 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 的更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      相关资源
      最近更新 更多