0

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

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

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

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

谢谢!

4

2 回答 2

1

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

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

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

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

于 2012-11-25T20:30:44.803 回答
1

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

你怎么做取决于你的要求。从简化的角度来看,svn 分支只是文件夹,所以你可以这样做:

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

trunk除非您想分支整个代码库,否则这基本上会使顶层变得多余,但如果您选择这样做,可能会使您的转换更容易。如果这永远不会成为要求,我也会考虑删除这些顶级文件夹。

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

于 2012-11-25T20:28:21.870 回答