2009-06-04 72 views
1

我有一个SVN中有一个插件文件夹的项目。几个插件文件夹是git仓库 - 我使用git clone将它们添加到我的插件文件夹中。我可以让git-svn导入一个本身包含git存储库的Subversion版本库

这一直工作很适合我,但现在我正在寻找迁移我的SVN仓库使用git-svn与git:

git svn init http://path/to/my/repo --no-metadata 
git config svn.authorsfile ~/authors.txt 
git svn fetch 

这工作得很好,其没有git的回购协议我所有的早期版本在我的插件文件夹,但是当它击中包含一个Git仓库失败,出现以下错误第一次修订:

trunk/plugins/my_plugin/.git/HEAD was not found in commit 
ae9ad0ab7cebd144c823d90d43cdab2b30d13f9e (r2259) 

是否有办法解决,让我完全导入我的仓库,也许排除任何。 git文件夹哪个resi在SVN仓库中?

回答

4

事实证明,我在Ubuntu上使用git-svn 1.5,它不支持git-svn fetch上的--ignore-paths标志。从源代码构建混帐1.6后,我现在可以运行:

git svn fetch --ignore-paths='\.git' 

的取现忽略所有.git文件夹,并成功导入所有SVN历史上我的Git仓库。

1

您可以将当前的svn repo,filter转储出.git目录,并根据此过滤转储创建另一个svn repo,并使用此新的作为git repo的基础。

git和svn的并行使用可能会是有趣 - 您必须用新的gitless替换现有的repo,而缺少的.git目录可能会导致一些麻烦。

我还没有试过这个,所以你会想要小心,并有备份。

0

由于Git的工作方式,超过1个.git文件夹会导致你的问题(呃,你已经知道嘿嘿)。

你有2种选择: - 如果你不关心故事,做最简单的方法:从SVN中删除。git的文件夹和移动与git整个项目

  • 如果你在乎故事,难道这样做:检查这link并按照步骤

我知道我的团队领导有一些问题,但它的工作原理。

编辑:我忘了提及另一种方式:您可能会使用Bazaar来拉动项目,因为它与两个项目交互。不知道这是否会更容易,虽然

相关问题