【发布时间】:2011-09-26 15:11:38
【问题描述】:
我正在寻找一种将我的一个 SVN 存储库永久迁移到 git 的方法(即在导入后不会使用 git-svn,并且将再次克隆 repo 以消除所有 git-svn 剩余部分)。通常这将是一件容易的事情 - 只需按照http://www.jonmaddox.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/ 中说明的步骤进行操作即可。
但是,在 SVN 存储库中,我在一段时间后切换到了 trunk/branches/tags 结构,因此大约 2000 次提交中约有一半在 / 中的实际主干中工作,而另一半在 /trunk/ 中(即有一个大提交移动所有内容)所以在执行 git svn 初始化时既不使用 -s 也不使用它将正常工作。
我现在正在寻找一种将存储库正确导入 git 的方法,即保留分支信息(没有标签,我从未创建任何标签),同时又不会弄乱旧的提交。如果这是不可能的,我想知道是否有办法重写旧的提交来更改 repo,以便它使用trunk/branches/tags 结构 - 然后我可以简单地在 git-svn 中使用-s。
【问题讨论】:
-
如果它是公开的,请尝试让 github 为您进行导入。
-
不是(而且我很确定 github 也不支持这种相当特殊的情况)。
-
你可以使用 git-svn 的
-r开关首先克隆到使用-T <trunk>更改结构的位置,然后在第二个命令中使用-s <stdlayout>从那里导入吗?