我在SVN中有一个项目,它有一个插件文件夹。几个插件文件夹是git存储库 - 我使用git clone
将它们添加到我的插件文件夹中。
这对我来说效果很好,但现在我想使用git-svn
将我的SVN存储库迁移到git:
git svn init http://path/to/my/repo --no-metadata
git config svn.authorsfile ~/authors.txt
git svn fetch
这适用于我的所有早期版本,我的插件文件夹中没有git repos,但是当它遇到包含git存储库的第一个修订版时,它会失败并出现以下错误:
trunk/plugins/my_plugin/.git/HEAD was not found in commit
ae9ad0ab7cebd144c823d90d43cdab2b30d13f9e (r2259)
有没有办法让我完全导入我的存储库,可能是通过排除驻留在SVN存储库中的任何.git文件夹?
答案 0 :(得分:4)
事实证明我在Ubuntu上使用了git-svn 1.5,它不支持--ignore-paths
上的git-svn fetch
标志。从源代码构建git 1.6后,我现在可以运行:
git svn fetch --ignore-paths='\.git'
fetch现在忽略所有.git
个文件夹,并成功将所有SVN历史记录导入我的新git存储库。
答案 1 :(得分:1)
你可以将当前的svn repo,filter转储出.git目录,然后根据这个过滤的转储创建另一个svn repo,并使用这个新的作为git repo的基础。
并行使用git和svn可能有趣 - 你必须用新的gitless替换现有的repo,而丢失的.git目录可能会引起一些麻烦。
我没有试过这个,所以你要小心,并备份。
答案 2 :(得分:0)