我有一个问题,我正在寻找合适的答案。我看到太多类似的问题,但没有什么可以帮助我解决我的情况。 我有一个项目,其中有一个共同的代码库。一个代码库,包含一些配置文件。此代码存储在repo的主干中,分支在主分支目录中处理。 然后我有太多的项目正在使用这个代码库,配置文件中有一些更改,或者在代码库的目录中有一些添加的文件。我想保持代码库的共同点,所以如果任何正文更改了与代码库相关的项目内的任何内容,它将被提交回主代码,但我也希望将项目的特定文件保持分离,以便明显没有人会覆盖他人的配置,或者没有人必须在他的代码中携带他人的额外文件。
当我搜索我的问题的可能答案时,我来到外部,所以现在我的回购中有这个结构:
/
trunk <- code base trunk
branch <- code base branchs
projects
proj1
trunk <- project's trunk
branch <- project's branches
proj2
每个项目的主干实际上是代码库的主干的外部链接,我在文件夹内做了一些更改或更改了一些配置文件。现在我无法将对代码进行的一些更改分离到proj1的文件夹,而将其他代码更改为主代码。 它是否可能?我应该改变我的结构吗?
答案 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
在这种情况下,事情变得有点复杂......