Python 将Mercurial迁移到GitHub

Python 将Mercurial迁移到GitHub,python,git,mercurial,github,Python,Git,Mercurial,Github,我想从Google代码和Mercurial迁移到Git和GitHub,同时保留所有分支和版本历史记录 到目前为止,hggit mercurial插件()似乎是我唯一的选择。我试图按照安装说明操作,但有点不知所措。我就在这里: 我安装了 我安装了 我安装了 我在OrtoisehG中的mercurial.ini中添加了以下内容: [扩展] hgext.bookmarks= hggit= 现在当我跑步时: C:\Python27\Scripts>easy\u install.exe hg git

我想从Google代码和Mercurial迁移到Git和GitHub,同时保留所有分支和版本历史记录

到目前为止,hggit mercurial插件()似乎是我唯一的选择。我试图按照安装说明操作,但有点不知所措。我就在这里:

  • 我安装了
  • 我安装了
  • 我安装了
  • 我在OrtoisehG中的mercurial.ini中添加了以下内容:
[扩展]
hgext.bookmarks=
hggit=
现在当我跑步时:

C:\Python27\Scripts>easy\u install.exe hg git
我得到以下信息:

搜索hg git
最佳匹配:hg git 0.3.3
加工hg_git-0.3.3-py2.7.1鸡蛋
hg git 0.3.3已经是easy-install.pth中的活动版本
使用c:\python27\lib\site packages\hg\u git-0.3.3-py2.7.egg
处理hg-git的依赖项
搜索dulwich>=0.8.0
阅读http://pypi.python.org/simple/dulwich/
阅读http://samba.org/~jelmer/德威治
阅读http://launchpad.net/dulwich
最佳对手:德威治0.8.5
正在下载http://samba.org/~jelmer/dulwich/dulwich-0.8.5.tar.gz
加工德威治-0.8.5.tar.gz
运行dulwich-0.8.5\setup.py-q bdist\u egg--dist dir c:\users\lee\appdata\local\temp\easy\u install-3qgeev\dulwich-0.8.5\egg-dist-tmp-ciyt\u 4
然后是一系列错误,如下所示:

回溯(最近一次呼叫最后一次):
文件“C:\Python27\Scripts\easy\u install-script.py”,第8行,在
加载入口点('setuptools==0.6c11','console\u scripts','easy\u install')()
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第1712行,主目录
使用_ei_(λ:
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第1700行,使用了\u ei\u用法
返回f()
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第1716行,在
distclass=DistributionWithout帮助命令,**kw
文件“C:\Python27\lib\distutils\core.py”,第152行,在安装程序中
dist.run_命令()
文件“C:\Python27\lib\distutils\dist.py”,第953行,在run\u命令中
self.run_命令(cmd)
文件“C:\Python27\lib\distutils\dist.py”,第972行,在run\u命令中
cmd_obj.run()
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第211行,正在运行
自我。易于安装(规范,非自我。无需安装)
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第446行,在easy\u install中
返回自安装项目(规格、距离位置、tmpdir、deps)
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第481行,位于安装项目中
自我处理分配(规范、区[0],部门,“使用”)
文件“C:\Python27\lib\site packages\setuptools\command\easy\u install.py”,第519行,正在分发中
[要求]、self.local\u索引、self.easy\u安装
文件“C:\Python27\lib\site packages\pkg_resources.py”,第563行,解析
dist=最佳[req.key]=环境最佳匹配(req,self,installer)
文件“C:\Python27\lib\site packages\pkg\u resources.py”,第799行,最佳匹配
返回self.acquire(请求,安装程序)#尝试下载/安装

不确定下一步要尝试什么。我也尝试了下面的提示,但我遗漏了一些明显的东西。如果有任何帮助,我们将不胜感激。

只需草稿和一些注释和想法:

  • 为了使用TortoiseHG(在Windows上,xpsp3,如果有必要的话),Python不是强制性的——我使用THG时没有Python/setuptools/pip
  • Bitbucket中的乌龟(or)在Windows世界中是自给自足的Mercurial
  • 我用手把hg-git扩展添加到我的龟甲上
    • 将hg git从克隆到本地目录
\陆龟hg\plugins>dir/B

汞吉特

  • 在global mercurial.ini(Documents and Settings\Badger\mercurial.ini)中添加了hg git扩展名
[延期]

hggit=c:\Program Files\u Tools\TortoiseHg\plugins\hg git\hggit

  • 书签扩展,作为默认扩展,与THG捆绑在一起,在一些版本之前在GUI中启用,现在可以在mercurial.ini中找到
    bookmarks=
    ,而在设置扩展中没有相应的复选框

  • 使用OrtoiseHG中的功能性hg git(克隆、拉、推,某些git回购无误),您可以尝试将外部Mercurial回购转换为外部git回购

    • 将CG Mercurial回购克隆为本地(Mercurial)回购
    • 在Github上创建新的空Git repo(验证身份验证和其他可能的问题)
    • 添加第二个远程repo(GUI-“Synchonize”选项卡,手动-repo的.hg\hgrc中
      [path]
      部分的新字符串),仅适用于我
      git+ssh://git@github.com/username/reponame.git
      URL(通过PageAnt进行基于密钥的身份验证)是透明的解决方案
    • 将本地回购推送到github
    • 玩得开心
截图只是我在GitHub上进行的Git回购的一个例子,并试图通过一个实时来源来说明我的话


我还与hg-git进行了斗争。我想出了一个奇怪的解决方案

我是用 这并不奇怪,一定是你在寻找的


怪异和奖金部分如下:

  • 我在上创建了一个hg镜像回购
  • 我在git存储库中创建了一个本地hg存储库
  • 我将
    .hg/
    添加到我的
    .gitignore
  • .hg/
    .git/
    添加到
    .gitignore
    文件中
    
    吉特先生/
    .hg/
  • 在本地repo中输入
    .hg
    目录,并将
    .gitignore
    文件作为
    .hgignore
    符号链接到

    $ln-s../.gitignore.hgignore

  • 现在,
    hg
    也会考虑对
    .gitignore
    所做的任何更改

    $git add.gitignore-am'gitignore'

    $hg add.gitignore-am“别忘了将.hg/folder中的.gitignore作为.hgignore进行符号链接”

    $hg推送默认值

    $git推送源mas