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

Problems when migrating a repository from SVN to GITLAB

我在 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)   

我几乎什么都试过了:

我唯一认为我已经实现的是导入与提交相同的 SVN 存储库结构。

我想做的是将标签文件夹 intro 转换为真正的 git 标签,分支文件夹 intro 真正的分支并仅导入 MyProject(忽略 OtherProject)

最后不得不说的是资源库很大(不知道这个细节是否重要)

有什么简单的方法可以转换这个存储库吗?

提前致谢!

听起来您需要为 git svn 使用 trunk/branches/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>

这应该只拉出 MyProject。

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