从Mercurial迁移到Git

4
我知道这个问题之前已经被问过多次,并标记为“可能重复”,但它们似乎都没有正确地工作。我尝试了fast-export,但出现了错误。有人能帮忙解决如何从Mercurial迁移到Git吗?我需要历史记录。如果能逐步列出步骤,将不胜感激。
更新: 我尝试了fast export:
cd ~
git clone git://repo.or.cz/fast-export.git
git init git_repo
cd git_repo
~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo **[I get error in this line]**
git checkout HEAD

这个错误是:

..... hg-fast-export.sh: 第79行:python:找不到命令

谢谢您的帮助!


这个 S.O. 问题包含了大量的选项和文档链接(不仅是快速导出选项):https://dev59.com/zmgv5IYBdhLWcg3wSe62 - Sidney Gijzen
如果您希望我们能够帮助您,请在您的问题中添加更多细节。您正在使用哪些命令进行迁移?是否有任何错误消息?您已经尝试过什么但没有起作用?提供的信息越多,我们就能够提供更多的帮助! - user456814
@mnagel 我安装了 python-2.6.6.msi。 - Dilshod
那个脚本的第79行发生了什么事情?懒惰的獾的答案解决了这个问题吗? - Sidney Gijzen
@MF82 我不知道第79行发生了什么。我对Python不是很熟悉。我本来想尝试Lazy Badger的建议,但是非常困惑(我认为这是我的英语不足所致)。 - Dilshod
显示剩余2条评论
1个回答

5
  1. 将hg-git添加到Mercurial中
  2. 将hg-repo推送到git-target

步骤指南

A 从它的存储库克隆Hg-Git扩展程序到本地路径PATH\TO\HG-GIT中

B 在全局mercurial.ini或特定于存储库的.hgrc中启用扩展程序

[extensions]
bookmarks = 
...
hggit = PATH\TO\HG-GIT

这个书签很久以前就被添加了,当时这个扩展程序还不是TortoiseHG|Mercurial的一部分,不确定今天的配置如何。

使用读写权限创建新的Git仓库(或记住现有的仓库?!)

将来自C步骤的Git仓库添加到.hgrc文件中的[paths]部分,你想要在任何名称下将其导出到Git中的Mercurial仓库。以下是我本地Mercurial仓库的示例,它在Github上有一个Git镜像。

[paths]
default = git+ssh://git@github.com/lazybadger/Fiver-l10n.git

E 在此之后,您可以像使用Mercurial中的常规远程存储库一样使用Git存储库,并且对于创建的空Git存储库,您需要首先将其推送到新的远程存储库。
F 推送后,检查包含完整历史记录的Git存储库是否存在于Mercurial中进行了镜像。
G 以通常的方式使用Git存储库。

本指南中使用的来源

  • 具有非常简单线性历史记录的WP主题的本地Mercurial存储库

Local repo in Workbench

Mirror


请问您能否提供更多的步骤? - Dilshod
@Dilshod - 是的,答案现在已经扩展了。 - Lazy Badger
感谢您发布的所有内容。我正在尝试为我的HG添加扩展,但它没有显示在扩展列表中。这是我的尝试方式:hgext.bookmarks = hggit = C:/hg_builds/hg-git。我尝试了带反斜杠“\”和带引号的路径。不确定哪里出了问题。 - Dilshod
@Dilshod - 我从未使用过纯Mercurial(只用过THG),因此在这个领域无法发表任何意见。 - Lazy Badger
卡在(D)点上了,你如何构建“git+ssh://git@github.com/lazybadger/Fiver-l10n.git”字符串? - serge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接