将旧的HG存储库合并到较新的Git存储库中

时间:2014-08-30 21:40:45

标签: git mercurial bitbucket

所以我有一个旧的,旧的Mercurial存储库,其中大多数初始开发都已完成。

然后,项目发布,存储库被遗忘,下一个网站管理员通过直接编辑文件接管。

最终将其移至(新)Git存储库,最近所有更改都在那里。

现在我想移动新的Git存储库,并将其置于旧的Mercurial存储库之上,使整个事物成为Git存储库,所有提交仍然完好无损。我该怎么做呢? (由于版本控制的更改,旧存储库的末尾和新存储库的开头不一样)

我对Mercurial没有任何经验,但对Git有合理的经验。这一切都在BitBucket上。

编辑:我想我需要Git rebase,但我不确定如何使用它,更不用说将它与Mercurial链接。

1 个答案:

答案 0 :(得分:0)

由于回购已经发布,实际上还没有办法实现。

Git带有一个python脚本,用于将hg repos转换为git,名为hg-to-git.py(通常安装为/usr/share/git/hg-to-git/hg-to-git.py

首先提交hg repo中任何未经修改的更改,然后:

# this will create a .git folder in your old hg repo, leaves .hg untouched
$ python2 /usr/share/git/hg-to-git/hg-to-git.py $PATH_TO_REPO
$ cd your-git-repo
$ git remote add hg-repo $PATH_TO_REPO && git remote update

# create an orphaned empty branch, repeat for each hg branch name.
$ git checkout --orphan original && git rm -rf . 
$ git merge hg/master