将存储库从SVN迁移到GITLAB时出现问题

将存储库从SVN迁移到GITLAB时出现问题,git,svn,gitlab,git-svn,Git,Svn,Gitlab,Git Svn,我在SVN中有一个非常大的存储库,其结构如下: http://mycompany.com/svn/something/ │ │ │ └───branches │ │ │ └───MyProject_FIX │ │ │ │ │ └(SOURCE CODE) │ │ │ └───MyProject_Branch2 │ │ │ │ │ └(SOURCE CODE) │ │ │ │ │ │ │ └─

我在SVN中有一个非常大的存储库,其结构如下:

http://mycompany.com/svn/something/
│   
│  
│
└───branches
│   │   
│   └───MyProject_FIX
│   │   │   
│   │   └(SOURCE CODE)   
│   │   
│   └───MyProject_Branch2
│   │   │   
│   │   └(SOURCE CODE) 
│   │
│   │
│   │
│   └───OtherProject_FIX
│       │   
│       └(SOURCE CODE)   
│
│
│
└───tags
│   │   
│   └───MyProject
│   │   │   
│   │   └1.0.0
|   |   |  └(SOURCE CODE)
│   │   │
|   │   └1.0.1
|   │   |  └(SOURCE CODE)
│   │   │
|   │   └1.0.3    
|   │   |  └(SOURCE CODE)
│   │   │
|   │   (...)
│   │   │
│   │   └latest
│   │
│   └───OtherProject   
│
└───trunk
    |
    └───MyProject
    |    |
    |    └─(SOURCE CODE)
    |
    └───OtherProject
         |
         └─(SOURCE CODE)   
我几乎什么都试过了:

  • git-svn克隆
  • 此脚本:
  • github中的导入选项
  • 本教程来自bitbucket:
  • 此工具:
我唯一的想法是导入与提交相同的SVN存储库结构

我想做的是转换标记文件夹intro real git标记,分支文件夹intro real Branchs并只导入MyProject(忽略OtherProject)

最后,我不得不说存储库相当大(我不知道这个细节是否重要)

是否有任何简单的方法可以转换此存储库


提前谢谢你

听起来您需要使用git svn的trunk/branchs/tags命令行选项:

git svn clone --trunk=/trunk/MyProject --branches=/branches/MyProject_Branch2 --branches=/branches/MyProject_FIX --tags=/tags/MyProject http://mycompany.com/svn/something/ <dest repo>
git svn clone--trunk=/trunk/MyProject--branchs=/branchs/MyProject\u Branch2--branchs=/branchs/MyProject\u FIX--tags=/tags/MyProjecthttp://mycompany.com/svn/something/ 
这应该是我的项目


请记住包括您的作者文件并放入
--prefix=
,以确保将svn标记转换为实际标记的atlassian清理脚本正常工作。

听起来您需要使用git svn的trunk/branchs/tags命令行选项:

git svn clone --trunk=/trunk/MyProject --branches=/branches/MyProject_Branch2 --branches=/branches/MyProject_FIX --tags=/tags/MyProject http://mycompany.com/svn/something/ <dest repo>
git svn clone--trunk=/trunk/MyProject--branchs=/branchs/MyProject\u Branch2--branchs=/branchs/MyProject\u FIX--tags=/tags/MyProjecthttp://mycompany.com/svn/something/ 
这应该是我的项目


请记住包括您的作者文件并放入
--prefix=
,以确保将svn标记转换为实际标记的atlassian清理脚本正常工作。

如果您正确设置了分支,则可以使用普通的旧git svn。您可以使用svn repo部分的.git/config文件中的
fetch
行(每个分支一行)逐个设置它们(如果您不是说几十个标记的话)。标签?我在那里没有太多的经验,所以不会给你任何建议(尽管我认为这应该是可能的)。如果你正确地设置了分支,使用普通的git svn应该是可行的。您可以使用svn repo部分的.git/config文件中的
fetch
行(每个分支一行)逐个设置它们(如果您不是说几十个标记的话)。标签?我在那里没有太多经验,所以不会给你任何建议(尽管我认为这应该是可能的)。