我有一个由多个服务组成的项目,
每个都在他们自己的SVN存储库和一个构建脚本中,它将每个SVN存储库检出为单个/project
目录中的文件夹以及/project
级别Makefile
,以递归方式构建整个项目。 / p>
在视觉上它看起来像这样:
/project
Makefile
/service1 # First service (SVN repository)
/.svn
/service2 # Second service (SVN repository)
/.svn
...
我正在尝试将项目转换为单个可共享的git存储库,以便与队友协作,而无需删除提交回原始SVN存储库的能力。
我目前的想法是使用git-svn查看每个SVN存储库(/service1
,/service2
等),然后在/project
级别创建一个主git存储库以进行分组他们进入一个存储库。假设的项目结构看起来像这样:
/project
/.git # Master git repository
Makefile
/service1 # First service (SVN repository)
/.git # .git directory for git-svn checkout of service 1
/service2 # Second service (SVN repository)
/.git # .git directory for git-svn checkout of service 2
...
这会有效吗?有更简单的解决方案吗?
注意:我不有权重新定义项目结构或SVN存储库的结构。
答案 0 :(得分:1)
如果您将/project
视为引用servicexx
git repos为submodules的父存储库,则它可以正常工作。
这样,其他协作者只能引用父回购,并返回其中的所有子模块。
如“True Nature of submodules”中所述,他们可以在这些子模块中创建/签出分支并开始修改它们。
确保一个分支专用于git svn dcommit
(合并回SVN):
请参阅“Overcome git svn caveats”和“Easy merging in svn using git-svn”。