从 Mercurial 迁移到 Git
Posted
技术标签:
【中文标题】从 Mercurial 迁移到 Git【英文标题】:Migrating from Mercurial to Git 【发布时间】:2013-07-31 12:24:11 【问题描述】:我知道这个问题之前被问过几次并标记为“可能重复”,但它们似乎都没有正常工作。我尝试了快速导出,但它给出了错误。谁能帮助如何?我需要历史。如能分步列出将不胜感激。
更新:
我尝试了快速导出:
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.问题包含很多选项和文档链接(不仅是快速导出选项):***.com/questions/10710250/… 如果您希望我们为您提供帮助,请在您的问题中添加更多详细信息。您使用什么命令进行迁移?是否有任何错误信息?您已经尝试过哪些不起作用的方法?您提供的信息越多,我们能为您提供的帮助就越多! @Cupcake 我更新了我的问题。 @MF82 我完全按照那个链接。查看我的更新 你的python是怎么安装的? 【参考方案1】:-
将 hg-git 添加到 Mercurial
将 hg-repo 推送到 git-target
分步指南
从it's repository 克隆Hg-Git Extension 到某个本地PATH\TO\HG-GIT
B 在(全局 mercurial.ini 或存储库特定的 .hgrc)中启用扩展
[extensions]
bookmarks =
...
hggit = PATH\TO\HG-GIT
书签是很久以前添加的,当时这个扩展不是 TortoiseHG|Mercurial 的一部分,不确定今天的配置
C 创建具有读|写权限的新 Git 存储库(或记住现有的?!)
D 从 p 添加 Git-repo。 C 到 .hgrc 的 [paths]
部分,用于 Mercurial 存储库,您希望在 Git 中以任何名称导出。我的本地 Mercurial 存储库的示例,它在 Github 上有 Git-mirror
[paths]
default = git+ssh://git@github.com/lazybadger/Fiver-l10n.git
E 之后,您可以在 Mercurial 中像往常一样使用 Git-repository 远程存储库,并且作为第一个操作(对于创建的空 Git-repository),您必须推送到新远程
F 检查 Git 存储库是否存在,推送后将 Mercurial 的完整历史记录镜像到其中
G 照常使用 Git-repository
本指南中使用的来源
WP 主题的本地 Mercurial 存储库,具有非常简单的线性历史记录 Git-mirror Github 上的这个 repo【讨论】:
能否提供更多步骤? @Dilshod - 是的,答案现在扩展(将会) 感谢您发布所有内容。我正在尝试将扩展名添加到我的 HG,但它没有显示在扩展名列表中。这就是我尝试的方式。 hgext.bookmarks = hggit = C:/hg_builds/hg-git。我尝试了带有反斜杠“\”和引号的路径。不知道怎么回事。 @Dilshod - 我从未使用过纯 Mercurial(仅 THG),因此 - 在这方面什么也说不出来 抓住重点(D),你如何构建“git+ssh://git@github.com/lazybadger/Fiver-l10n.git”字符串?以上是关于从 Mercurial 迁移到 Git的主要内容,如果未能解决你的问题,请参考以下文章