我在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存储库的相同结构。
我想做的是转换标签文件夹介绍真实git标签,分支文件夹介绍真实分支,并仅导入MyProject(忽略OtherProject)
最后我不得不说存储库很大(我不知道这个细节是否重要)
是否有任何直接的方法可以转换此存储库?
先谢谢您!
答案 0 :(得分:2)
听起来像您需要对git svn使用trunk / anches / 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清理脚本正常工作。