从bzr转到git:如何将分支放在另一个分支之上

时间:2016-01-31 11:59:23

标签: git svn version-control bazaar

我已经搜索了几个星期的解决方案,但我并不幸运。

我有一个有5年历史的集市回购(截至2011年)。当我开始从事这个项目(2011)时,我使用的是svn,所以"经理"只是给了我一个关于"主人"的来源的tarball。 (在svn中转换项目是不可能的)。我从那个tarball开始设置一个svn repo,直到上个月我一直在研究它。 我最近切换到git,在两个git repos中转换了svn和git repos。

现在我有两个git存储库:前bzr repo,涵盖2006-2011,以及我的repo,涵盖2011-2016。我想做的是在主人身上有一个线性历史记录,即我想把我的主人(带附加分支)"放在顶部"前bzr回购。

有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。

  1. 首先,将bzr repo转换为git。你将有两个回购,我们称之为proj-bzr和proj-git。

  2. 在proj-git中,将proj-bzr添加为远程,并获取它。希望proj-bzr的最后一次提交和proj-git的第一次提交都有相同的文件。

  3. 添加一个移植设备,将最新的proj-bzr提交设置为最早的proj-git提交的父设备。请参阅:https://git.wiki.kernel.org/index.php/GraftPoint

  4. 一旦您确信这是正确的历史记录,您可以使用filter-branch将移植物“烘焙”到存储库中并使其永久化。这将重写proj-git的所有SHA-1哈希值。