svn,从";干线/工程“;将布局改为";项目/主干“;

svn,从";干线/工程“;将布局改为";项目/主干“;,svn,Svn,不久前,我使用cvs2svn从cvs迁移到svn。已在以下表单中创建默认回购布局: /trunk /project1 /project2 ... /branches /tags 从目前为止我所看到的情况来看,首选的方法是在每个项目下都有主干(不确定分支和标记应该在哪里?) 我的svn回购约为1.8G,主干下约有30个项目。“标记和分支”文件夹为空。是否有可能改变布局,这是否值得一做 谢谢大家! 通常认为最好的做法是为每个项目设置这些文件夹,以使版本控制更容易发布、错误修

不久前,我使用cvs2svn从cvs迁移到svn。已在以下表单中创建默认回购布局:

/trunk
    /project1
    /project2
    ...
/branches
/tags
从目前为止我所看到的情况来看,首选的方法是在每个项目下都有主干(不确定分支和标记应该在哪里?)

我的svn回购约为1.8G,主干下约有30个项目。“标记和分支”文件夹为空。是否有可能改变布局,这是否值得一做


谢谢大家!

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

你怎么做取决于你的要求。从简化的角度来看,svn分支只是文件夹,因此您可以执行以下操作:

这实际上会使顶级
主干
冗余,除非您想要分支整个代码库,但如果您选择这样做,则可能会使转换更容易。如果永远不需要删除这些顶级文件夹,我也会考虑删除它们


相关的问题是,您应该拥有多个允许更多定制的存储库(每个项目都有单独的挂钩、单独的权限限制等),还是一个大型存储库,可以避免存储库配置不必要的重复。

如果您想要基于项目的根目录,在本例中,逻辑树应该(IMNSHO)在ProjectN dir下具有与此项目主干相同级别的标记和分支

是否有可能改变布局,这是否值得一做

是和“这取决于…”您必须执行大量的
svn mkdir
svn mv
,并避免过程中出现错误和键入错误


一、 就个人而言,更喜欢“每个项目回购”,因为巨大的共享存储库弊大于利,而且如果您愿意努力工作,一次性拆分过程(可能是清理:1.8GB是糟糕的大小)回购可能是更好的时间和注意力投资

顶级主干?!在这里为什么?对我来说,这取决于移除它的痛苦程度。例如,有多少开发人员的svn路径中已经有主干,有多少构建服务器,等等?我们是否删除它并修复apache服务器中的URL映射?它由apache或共享文件夹等提供服务吗?问题中没有足够的信息来说明删除它是否是一个好主意。我将repo用于我自己的开发项目,所以我几乎是唯一的用户。在两台开发机器上再次签出所有项目不是问题。有http服务-我只使用svn+ssh访问repo。让我困惑的是如何将trunk/projectN移动到trunk/projectN/trunk。。。谁能给我举个例子?谢谢,我将创建3个文件夹
trunk/projectN/trunk
trunk/projectN/branchs
,和
trunk/projectN/tags
,然后
svn mv
trunk/projectN
trunk/projectN/trunk
,我不知道是否有更好的方法。如果你是唯一的开发者,那么我也会删除父
trunk
文件夹。谢谢-我刚刚完成一个项目,所以这是一个清理回购的机会,就像你建议的那样。有没有一种简单可靠的方法可以做到这一点而不丢失任何文件历史记录等?如果您对通常用于此目的的svn命令有任何建议,将非常有用。@Nikos-拆分repo是一项
svnadmin dump
|
svnadmin load
+svndumpfilter的任务。作为手动和起点,添加了for correction path的结果是repo:我认为,您更喜欢在单独的单个项目repo中使用/trunk而不是/trunk/project1/trunk
/trunk
    /project1
        /trunk
        /branches
        /tags
    /project2
        /trunk
        /branches
        /tags