外部存储库中的代码

时间:2011-09-14 11:11:57

标签: svn

我有一个问题,我正在寻找合适的答案。我看到太多类似的问题,但没有什么可以帮助我解决我的情况。 我有一个项目,其中有一个共同的代码库。一个代码库,包含一些配置文件。此代码存储在repo的主干中,分支在主分支目录中处理。 然后我有太多的项目正在使用这个代码库,配置文件中有一些更改,或者在代码库的目录中有一些添加的文件。我想保持代码库的共同点,所以如果任何正文更改了与代码库相关的项目内的任何内容,它将被提交回主代码,但我也希望将项目的特定文件保持分离,以便明显没有人会覆盖他人的配置,或者没有人必须在他的代码中携带他人的额外文件。

当我搜索我的问题的可能答案时,我来到外部,所以现在我的回购中有这个结构:

/
    trunk    <- code base trunk
    branch   <- code base branchs
    projects
        proj1
            trunk    <- project's trunk
            branch   <- project's branches
        proj2

每个项目的主干实际上是代码库的主干的外部链接,我在文件夹内做了一些更改或更改了一些配置文件。现在我无法将对代码进行的一些更改分离到proj1的文件夹,而将其他代码更改为主代码。 它是否可能?我应该改变我的结构吗?

1 个答案:

答案 0 :(得分:0)

我建议这个布局:

/
    common
        trunk    <- code base trunk
        branches   <- code base branches
    projects
        proj1
            trunk    <- project's trunk
               common  <- common trunk (external)
               local   <- proj1 specific
            branch   <- project's branches
               common  <- common branch (or trunk) (external)
               local   <- proj1 specific
        proj2

因此,如您所见,最好将项目划分为常见/特定部分。

UPDATE (如果无法拆分代码库)

    trunk    <- code base trunk
      common.h
      common.c
      common_folder
    branches   <- code base branches
         br1
            common.h
            common.c
            common_folder
    projects
        proj1
            trunk    <- project's trunk
               common.h  <- (svn:externals ^/trunk/common.h common.h)
               common.c  <- (svn:externals ^/trunk/common.c common.c)
               common  <- (svn:externals ^/trunk/common_folder common)
               spec.h  
               spec.c 
            branches   <- project's branches
               br1
                 common.h  <- (svn:externals ^/branches/br1/common.h common.h)
                 common.c  <- (svn:externals ^/branches/br1/common.c common.c)
                 common  <- (svn:externals ^/branches/br1/common_folder common)
                 spec.h  
                 spec.c 
        proj2

在这种情况下,事情变得有点复杂......