【问题标题】:svn, switch from "trunk/project" layout to "project/trunk"svn,从“主干/项目”布局切换到“项目/主干”
【发布时间】:2012-11-25 17:39:38
【问题描述】:

不久前,我使用 cvs2svn 从 cvs 迁移到 svn。这在表单中创建了一个默认的 repo 布局:

/trunk
    /project1
    /project2
    ...
/branches
/tags

据我目前所见,首选方法是在每个项目下都有主干(不确定分支和标签应该在哪里?)

我的 svn repo 大约 1.8G,主干下大约有 30 个项目。标签和分支文件夹是空的。是否可以改变布局,是否值得做?

谢谢!

【问题讨论】:

    标签: svn


    【解决方案1】:

    通常认为最佳做法是为每个项目创建这些文件夹,以便更轻松地进行版本控制、错误修复等。您不太可能需要将所有项目分支在一起(除非它们通过以下方式紧密相关)一个常见的依赖项,即使需要或不需要,它也是有争议的)。

    如何做到这一点取决于您的要求。从简化的角度来看,svn 分支只是文件夹,所以你可以这样做:

    /trunk
        /project1
            /trunk
            /branches
            /tags
        /project2
            /trunk
            /branches
            /tags
    

    这实际上会使顶级 trunk 变得多余,除非您想要分支您的整个代码库,但如果您选择这样做,可能会使您的转换更容易。如果不需要的话,我也会考虑删除这些顶级文件夹。

    相关的问题是您是否应该拥有多个允许更多自定义的存储库(每个项目的单独挂钩、单独的权限约束等),或者有一个大型存储库,可以避免对存储库配置进行不必要的重复。

    【讨论】:

    • 顶级后备箱?!这里?为什么?
    • 对我来说,这取决于删除它的痛苦。例如,有多少开发人员在他们的 svn 路径中已经有主干,有多少构建服务器等?我们是否删除它并修复 apache 服务器中的 URL 映射?它是由 apache 还是共享文件夹等提供的?问题中没有足够的信息来说明删除它是否是个好主意。
    • 我将 repo 用于我自己的开发项目 - 所以我几乎是唯一的用户。在几台开发机器上再次检查所有项目不是问题。有 http 服务 - 我只使用 svn+ssh 来访问 repo。让我感到困惑的是如何将trunk/projectN移动到trunk/projectN/trunk ...任何人都可以给我一个例子吗?谢谢
    • 我将创建 3 个文件夹 trunk/projectN/trunktrunk/projectN/branchestrunk/projectN/tags 然后 svn mvtrunk/projectNtrunk/projectN/trunk 的所有内容 - 我不知道是否有更好的方法。如果您是唯一的开发人员,那么我还将删除父级 trunk 文件夹。
    【解决方案2】:

    如果您希望基于项目的根目录,在这种情况下为 (IMNSHO) 的逻辑树在 ProjectN 目录下与该项目的主干具有相同级别的标签和分支。

    是否可以改变布局,是否值得做?

    是的,“这取决于...”你必须执行很多 svn mkdirsvn mv 并避免过程中的错误和错误输入

    我个人更喜欢“每个项目的 repo”,因为巨大的共享存储库弊大于利,如果你准备好努力工作,一次性拆分过程(也许清理:1.8GB 是可怕的大小)回购可能是更好的时间和注意力投资

    【讨论】:

    • 谢谢 - 我刚刚完成了一个项目,所以这是一个清理 repo 的机会,就像你建议的那样拆分它。有没有一种简单可靠的方法可以做到这一点而不会丢失任何文件历史等?如果您对通常用于此的 svn 命令有任何建议,那将很有帮助。
    • @Nikos - 拆分 repo 是 svnadmin dump|svnadmin load +svndumpfilter 的任务。 The black art of splitting a Subversion repository 作为手动和起点,添加 The ultimate subversion repository splitting guide 以纠正路径是结果回购:我认为,您更喜欢在单独的单项目回购中使用 /trunk 而不是 /trunk/project1/trunk
    猜你喜欢
    • 1970-01-01
    • 2016-11-23
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2011-07-05
    相关资源
    最近更新 更多