我使用git svn-clone
将我的SVN存储库成功迁移到Git中。但是,git svn-clone
不会迁移svn:externals
。因此,我决定使用git filter-branch
修改分支树。
对于svn:externals
,首先我为每个svn:externals创建了一个单独的Git存储库,然后我尝试使用以下内容,但它没有用。
$ git filter-branch --tree-filter "git submodule add git@github.com:myAcc/mySubmodule.git mySubmodule" HEAD
Rewrite a013a219e4294d4ee66b323cf1db9c170d90130a (1/4)fatal: working tree '.' already exists.
Clone of 'git@github.com:myAcc/mySubmodule.git' into submodule path 'common' failed
tree filter failed: git submodule add git@github.com:myAcc/mySubmodule.git mySubmodule
rm: cannot remove `c:/myRepo/.git-rewrite/revs': Permission denied
rm: cannot remove directory `c:/myRepo/.git-rewrite': Directory not empty
知道怎么做到这一点?非常感谢。
答案 0 :(得分:1)
我认为你可以这样做,但有可能以更清洁的方式做到这一点:
svn:external
添加为子模块并提交;请注意此提交的SHA名称git fetch
git rebase <SHA of the only commit in the temporary repository>