代码之家  ›  专栏  ›  技术社区  ›  Otto

将非标准Subversion存储库转换为git

  •  3
  • Otto  · 技术社区  · 17 年前

    我有一个存储库,其布局如下:

        trunk/
            projectA
            projectB
        branches/
            projectA-1.0
            projectB-1.0
        tags/
            projectA-1.0.1
            projectB-1.0.1
    

    我想将它们转换为单独的git存储库,其中trunk/projectA作为顶级目录,它的所有分支都作为git分支。

    git svn init 喜欢 git svn init -T trunk/projectA -b branches -t tags http://svn.example.com git svn fetch 在不同的修改上神秘地失败了。有时会一直到200,有时会停下来。

    我目前的想法是,我应该创建一个git存储库,将整个subversion存储库镜像为单个实体,每个项目都有子目录。那我就用 git-filter-branch 将子目录重写到项目的根目录。

    但是,我不知道如何让分支像我希望使用的那样工作

    另外,最好创建一个git回购协议,每个项目的“主干”都有不同的分支,在这种情况下,如果没有一个主协议,我也不会有问题。

    2 回复  |  直到 17 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    svn2git 为了将svn导入git存储库?

    这比 git svn clone 因为如果您在svn中有此代码:

      trunk
        ...
      branches
        1.x
        2.x
      tags
        1.0.0
        1.0.1
        1.0.2
        1.1.0
        2.0.0
    

    git-svn
    信息技术 .
    因此,导入此项目后,您将获得:

      $ git branch
      * master
      $ git branch -a
      * master
        1.x
        2.x
        tags/1.0.0
        tags/1.0.1
        tags/1.0.2
        tags/1.1.0
        tags/2.0.0
        trunk
      $ git tag -l
      [ empty ]
    

    svn2git完成项目后,您将得到以下结果:

      $ git branch
      * master
        1.x
        2.x
      $ git tag -l
        1.0.0
        1.0.1
        1.0.2
        1.1.0
        2.0.0
    

    最后,它确保主机的主机头与svn回购的当前主干相同。

    因此,在您的情况下,它将为您提供实际的git分支来应用 git-filter-branch

        2
  •  0
  •   Otto    16 年前