为多个 git-svn 存储库创建主 git 存储库



>我有一个由几个服务组成的项目,每个都在自己的SVN存储库中,还有一个构建脚本,该脚本将每个SVN存储库签出为单个/project目录中的文件夹,以及一个/project级别Makefile,以递归方式构建整个项目。

视觉上它看起来像这样:

/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存储库的结构。

它可以工作,前提是您将/project视为引用servicexx git 存储库作为子模块的父存储库。

这样,其他协作者可以仅引用父存储库,并取回其中的所有子模块。
如"子模块的真实性质"中所述,他们可以在这些子模块中创建/签出分支并开始修改它们。

确保有一个分支专用于git svn dcommit(合并回SVN(:
请参阅"克服 git svn 注意事项"和"使用 git-svn 轻松合并 svn"。

最新更新