Kai*_*nen 73 git mercurial interop
这是一个困扰我一段时间的问题.我完成了我的作业并检查了stackoverflow,至少找到了关于我的问题的两个主题: Git for Mercurial,如git-svn和 Git与Mercurial存储库的互操作性
我已经做了一些严肃的谷歌搜索来解决这个问题,但到目前为止没有运气.我还阅读了Git Internals的书,以及Mercurial Definitive Behind the Scenes来试图解决这个问题.我仍然有点疑惑为什么我找不到任何合适的git-hg类型的工具.
从我的角度来看,git-svn是其中一个主要特性,为什么我选择在工作中使用git而不是mercurial.它允许我使用我喜欢的工作流程,如果他们不在乎,没有其他人需要打扰.我只是没有看到使用中间hg repo来回转换的重点,正如其中一个链中所建议的那样.
所以无论如何,从我读过的内容来看,hg和git在概念设计上看起来非常相似.引擎盖下存在差异,但这些都不会阻止为hg创建git客户端.在我看来,远程跟踪分支和章鱼合并使得git比hg更强大.
那么,真正的问题是,为什么git-hg不存在(或者至少很难找到)有任何真正的原因吗?git用户(和开发人员)对他们的hg对手是否有一些敌意导致缺乏git-hg工具?你们有没有计划开发类似的东西,并公开上市?我可以自愿参加(尽管有非常微弱的C技能)参与完成这项工作.我只是没有完全的知识来自己开始这个.
这可能是结束所有DVCS战争的工具吗?
Tom*_*lis 18
hg-git和作者的Pycon演示文稿解释了他对这种情况的看法.不确定你是否在谷歌搜索时遇到过这些,但他们回答了我的问题.
Max*_*Max 18
还有另一个项目可以实现这一点:git-remote-hg.实际上有两个,一个是原生的(参见https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg),另一个是基于hg-git的(参见https:// github. com/rfk/git-remote-hg).前者比后者快得多,但仍然不完整且正在开发中.
实际上有其他系统的git远程助手(因为这些工具被称为),无论是已经存在还是正在开发中; 这包括对Subversion,CVS,bazaar甚至MediaWiki的支持.
然后通过git克隆Mercurial存储库就像这样:
git clone hg::https://hg.example.com/some-mercurial-repo
Run Code Online (Sandbox Code Playgroud)
更新:到目前为止还有第三个,也是"本土的",即费利佩的一个,他在这里提到了答案.这看起来很快就可能成为git'inco'dir的一部分: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-remote-hg实现相同).我自己还没有尝试过,但你可以在https://github.com/glandium/git-cinnabar找到它.
hg-git显然可以用于在本地使用git,使用远程mercurial repo:http://traviscline.com/blog/2010/04/27/using-hg-git-to-work-in-git-and -push至HG /
不要错过那里的评论.
有人已经提到了两个git-remote-hg,但是这里有一个新的:
它具有更多功能,应该比msysgit更可靠,但最重要的是; 您不需要任何依赖项或自定义git构建.只需复制到你的$ PATH,就是这样.
它有大量的测试来检查输出是否与hg-git完全相同,所以它至少应该起作用.
归档时间: |
|
查看次数: |
20404 次 |
最近记录: |