代码之家  ›  专栏  ›  技术社区  ›  Kai Inkinen

Git作为mercurial客户机?为什么没有git hg?

  •  73
  • Kai Inkinen  · 技术社区  · 15 年前

    这个问题困扰了我一段时间。我做了家庭作业,检查了stackoverflow,发现我的问题至少有两个主题: Git for Mercurial like git-svn Git interoperability with a Mercurial repository

    Git Internals 书,还有 Mercurial Definitive Behind the Scenes

    从我的角度来看,gitsvn是一个主要的特性,也是为什么我在工作中选择使用git而不是mercurial。它允许我使用我喜欢的工作流程,如果其他人不在乎的话,也不需要麻烦。我只是不认为使用中间hg回购来来回转换有什么意义,正如其中一个链中所建议的那样。

    differences under the hood ,但这些都不应阻止为hg创建git客户机。在我看来,远程跟踪分支和octopus合并使得git比hg更强大。

    所以,真正的问题是,git hg不存在(或者至少很难找到)有什么真正的原因吗? git用户(和开发人员)对hg的敌视是否导致了git-hg工具的缺乏? 你们有没有人计划开发这样的东西,然后上市?我可以自愿(尽管C技能很弱)参与完成这项任务。我只是不具备完全的知识来启动这个自己。

    这能成为永远结束所有DVCS战争的工具吗?

    7 回复  |  直到 8 年前
        1
  •  18
  •   Tom Willis    7 年前

    hg-git Pycon presentation 解释他对形势的看法。不确定你在谷歌搜索时是否遇到这些问题,但他们回答了我的问题。

        2
  •  20
  •   Community CDub    4 年前

    我没试过这个,但好像有个问题 git-hg 项目。该项目在页面和自述文件中描述为:

    用于签出和 追踪反复无常的回购。

    一套 签出和跟踪脚本

    issue tracker ).

        3
  •  19
  •   Max Horn    9 年前

    还有另一个项目可以实现这一点:git remote hg。实际上是其中两个,一个是本地人(参见 https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg https://github.com/rfk/git-remote-hg

    实际上,对于其他系统,git远程助手(正如这些工具所称)已经存在或正在开发中;这包括对Subversion、CVS、bazaar甚至MediaWiki的支持。

    git clone hg::https://hg.example.com/some-mercurial-repo
    

    更新:到目前为止,还有第三个,也是“本地人”,即费利佩在他的回答中提到的那个。这个看起来很快就会成为git'contrib'目录的一部分: https://github.com/felipec/git-remote-hg 它不需要git本身的补丁就可以工作,不过git的一些补丁(现在正在审查中)可以用来改善总体用户体验。

    更新2:现在还有另一个竞争者,这个竞争者正处于相当活跃的开发阶段,基于felipe的代码: https://github.com/buchuki/gitifyhg --到目前为止,它对我很有效,但仍有一些不好的地方。

    更新3:gitifyhg和Felipe的git remote hg目前都没有得到有效维护。就目前而言,我对Felipe的代码做了一种形式,并进行了一些修复,包括一些使其能够与最新的Mercurial版本一起工作的修复。你可以从 https://github.com/fingolfin/git-remote-hg git-cinnabar ,在内部使用完全不同的方法(不过,如果您不关心这一点,那么使用它与其他git远程hg实现大致相同)。我自己还没有试过,但你可以在 https://github.com/glandium/git-cinnabar

        5
  •  5
  •   FelipeC    12 年前

    有人已经提到了两个git remote hg,但这里有一个新的:

    Bridge support in git for mercurial and bazaar

    它有更多的特性,应该比msysgit更可靠地工作,但最重要的是;您不需要任何依赖项或自定义git构建。抄到你的邮箱就行了 $路径 ,就这样。

    它有大量的测试来检查输出是否与hg git完全相同,因此它至少也应该工作得很好。

        6
  •  3
  •   abourget    13 年前

    有一个新的项目可以实现:

    它很好地集成了双向功能。

        7
  •  2
  •   Cascabel    15 年前

    相反,如果一个项目使用的是svn或cvs,任何一个尝试过DVCS的人都会受到伤害,他们会想要gitsvn/hgsvn实用程序。有很多项目仍然使用cvs/svn,所以需求量很大。

    你可能是对的,拥有它是一件很有用的事情,但是,假设两个中的一个不会慢慢战胜另一个(我相信git确实拥有更大的用户群)。