17

可能重复:
在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

我想将一个 Mercurial 存储库转换为 Git,这是我们在工作中使用的。我安装了 Mercurial(适用于 Windows),并且已经在本地克隆了 Hg 存储库。我一直在尝试转换它。

我发现的大多数页面都假设我使用的是 Unix/Linux,而最常见的建议 hg-fast-export 似乎只适用于这些操作系统。我确实可以访问 Git Bash。我已经做到了这一点(换行以便于阅读):

$ ~/codeingit/fast-export/hg-fast-export.sh -r
        ~/codeinmercurial/projectiwanttoconvert

作为回应,我得到:

ImportError:没有名为 mercurial 的模块

我已经阅读了许多关于此的网页,再次假设我使用的是 Unix/Linux 并且为此安装了 Mercurial。

有没有人成功地将 Hg 存储库转换为Windows上的 Git ,并且可以编写分步指南来执行此操作?

4

1 回答 1

42

1)在 Windows 10 上安装 CygwinBash

赛格温

  • 运行setup.exe
  • 选择从 Internet 安装
  • 在“选择包”对话框中:
    • 单击树顶部的安装(在All旁边),直到它显示Default
    • 展开Devel子树:安装git(从Skip更改为版本号)
    • Devel子树中:安装mercurial(从Skip更改为版本号)
    • 安装Python子树(从Default更改为Install
    • 点击下一步
  • 如果提示解决依赖关系,请单击下一步
  • 喝杯咖啡,看你最喜欢的电影,或者小睡一会儿

Cygwin 安装完成后,打开 bash shell 以运行以下步骤中指示的命令。bash 的快捷方式将称为Cygwin Terminal

视窗 10

2) 安装快速导出

打开终端(bash shell)并安装fast-export

   https://github.com/frej/fast-export.git

3)初始化新的git repo并迁移mercurial repo

   mkdir new_git_repo
   cd new_git_repo
   混帐初始化
   ../fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
   git结帐头


潜在错误

fatal: Invalid raw date "<devnull@localhost> xxx -xxxx" in ident:  <><devnull@localhost> xxx -xxxx

尝试按照此处所述添加“authors.txt”文件,其中包含:

<>=devnull <devnull@localhost>

命令行现在显示:

../fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo -A ../fast-export/authors
于 2012-07-04T07:07:01.823 回答