svn,从“trunk / project”布局切换到“project / trunk”

时间:2012-11-25 17:39:39

标签: svn

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

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

从我到目前为止看到的,首选方法是在每个项目下都有主干(不确定分支和标签应该在哪里?)

我的svn回购约为1.8G,大约有30个项目在干线下。标签&分支文件夹是空的。是否有可能改变布局,是否值得做?

谢谢!

2 个答案:

答案 0 :(得分:1)

通常认为最好的做法是为每个项目安装这些文件夹,以便更容易发布版本,错误修复等。您可能不需要将所有项目分支在一起(除非它们紧密相关一个共同的依赖,即使这样,如果你需要或不需要它是有争议的。)

您的工作方式取决于您的要求。从简化的角度来看,svn分支只是文件夹,所以可以执行此操作:

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

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

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

答案 1 :(得分:1)

如果你想要基于项目的root,那么在这种情况下,逻辑树是(IMNSHO)在ProjectN dir下的标签和分支,在这个项目的主干的同一级别。

  

是否可以改变布局并且值得做什么?

是和“这取决于......”您必须执行大量svn mkdirsvn mv并避免错误和错误进程

我个人更喜欢“每个项目的回购”,因为巨大的共享存储库有更多的缺点而不是优势,如果你准备好努力工作,一次性拆分过程(也许是清理:1.8GB 可怕规模)回购可能是更好的时间和关注投资