我有一个存储库,其布局如下:
trunk/
projectA
projectB
branches/
projectA-1.0
projectB-1.0
tags/
projectA-1.0.1
projectB-1.0.1
我想将它们转换为单独的git存储库,其中trunk/projectA作为顶级目录,所有它的分支作为git branches.
每当我尝试指定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-filter-branch和.
另外,理想的做法是为每个项目的"主干"创建一个具有不同分支的单个git仓库,在这种情况下我没有问题没有真正拥有主人.
您是否考虑使用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
Run Code Online (Sandbox Code Playgroud)
git-svn将通过提交历史记录来构建一个新的git repo.
它将所有分支和标签导入为远程svn分支,而你真正想要的是git-native本地分支和git标记对象.
因此,在导入此项目后,您将获得:
$ 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 ]
Run Code Online (Sandbox Code Playgroud)
在你的项目完成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
Run Code Online (Sandbox Code Playgroud)
最后,它确保master的HEAD与svn repo的当前主干相同.
所以在你的情况下,它会给你实际的git分支来申请git-filter-branch.
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |