在Windows上将Mercurial(hg)存储库转换为Git(7)

Nat*_*ley 25 python windows git mercurial

在这一点上,我真的非常沮丧.我有一个现有的hg存储库,里面有几个月的编码历史记录,我想把它变成一个私有的Github存储库,所以我可以从那里开始工作.不幸的是我使用Windows,我似乎无法找到任何方式来转换我实际上可以正常工作的存储库.实际上我在网上找到的每一点帮助和建议似乎都假设我是从某种类型的*nix shell运行的,我不是.

我目前已经安装了:TortoiseHG,Python 3.1和Git for Windows.

我尝试过的:

  1. hg的hg-init插件 - 当我尝试使用gexport命令(以及来自hg-git的其他命令)时,我只获得了python异常的字符串.我完全不能得到git甚至认识到gremote命令.我尝试了以下内容:http://github.com/blog/439-hg-git-mercurial-plugin

  2. hg-to-git(快速导出) - 所有教程都指望我运行.sh文件.另一个stackoverflow线程似乎暗示Powershell可以运行.sh文件,但是我不能让它在我的生命中运行它们.示例:http://hivelogic.com/articles/converting-from-mercurial-to-git

  3. Mercurial转git转换器 - http://permalink.gmane.org/gmane.comp.version-control.git/36601 - 当我通过Python运行它时,我不想工作,因为它抱怨它有语法错误第44行.我不知道python,所以我不知道.

四个小时的谷歌搜索和浏览无用的教程和人 - 比我更幸运的是赞美每个据称有用的博客文章,但我没有得到任何关于此.任何人都可以为我提供任何帮助或建议吗?

eri*_*old 19

  1. 安装Cygwin(使用python,hg,git)
  2. 安装git-hg
  3. git-hg clone ...url...

或者告诉我这个hg repo你的网址是什么,我可以为你转换它.

  • 谢谢你,你摇滚.这个Cygwin实际上有点酷!现在我可以像Linux一样对待Windows.为了澄清,在安装cygwin后,我按照http://hivelogic.com/articles/converting-from-mercurial-to-git上的说明进行了说明 - 在发现我必须合并任何流浪头之前我遇到了一些麻烦.一旦我达到一个单一的头,转换工作就好了. (3认同)

Hel*_*ein 8

关于如何在Windows上将Mercurial存储库转换为Git,有很多相互矛盾的信息.它真的很简单,只需要安装TortoiseHg和Git.

制备

通过将以下内容添加到Mercurial配置文件(%Userprofile%\ mercurial.ini)来启用hg-git :

[extensions]
hggit = 
hgext.bookmarks =

[git]
intree = True
Run Code Online (Sandbox Code Playgroud)

转变

在命令行上导航到存储库目录(包含.hg子目录)并执行以下命令:

hg bookmark -r default master
hg gexport --debug
git config --bool core.bare false
git reset HEAD -- .
Run Code Online (Sandbox Code Playgroud)

更多信息

您可以在我关于此主题的博客文章中找到这些步骤的详细说明.