mercurial和subversion之间的互操作

时间:2009-05-05 21:15:39

标签: svn mercurial interop hgsubversion hgsvn

最近有人问similar question,但不一样。

Mercurial网站有一个detailed page列表比较4种不同的选项,可以让Mercurial和Subversion进行互操作。

我想知道是否有人尝试了其中的一个或多个,并且可能与任何真正好或非常糟糕的经历有关。 hgsubversion download上的说明

  

hgsubversion是一个扩展名   允许使用Mercurial的Mercurial   作为Subversion客户端。现在呢   是准备好生产使用。您   如果你是的话,应该只使用它   准备破解它,然后去潜水   进入Mercurial的内部和/或   颠覆。

这就像邀请我这样的标语说“放弃希望,所有进入这里的人”或“闯入者将被捕”。所以我只是想知道这个或任何其他替代方案是否值得为那些没有太多时间去攻击的人而努力。

6 个答案:

答案 0 :(得分:4)

我认为hgsubversions作者有点偏执。如果您遵循自述文件 - 意味着使用适当的最新版本的mercurial和subversion - 而不是无论发生在您的发行版上或由您的发行版安装 - 那么它实际上工作得相当好。同样,所包含的文件是最新的;而你在网上找到的可能不是。我已经使用了几个星期而且结果合理但不完美。

当你进入两个系统的角落时,你遇到了问题:hgsubversion和其他扩展(我有hgtasks的问题)似乎不喜欢彼此;目前尚不清楚如何处理属性等等。

答案 1 :(得分:3)

我刚刚开始使用选项4,hgsvn。尽管Mercurial页面说的是,hgsvn 0.1.7 支持支持推回svn repo。

我的用例非常简单:我真的只想拥有本地分支(在此阶段)。 hgsvn页面上列出的工作流程正是我所使用的工作流程,到目前为止还没有破坏任何内容。

答案 2 :(得分:3)

我想第二个选项 hgsvn ,如果你想镜像一个大的存储库,它会相当慢,但是你可以从接近提示的修订开始(这通常是你想要的)

我发现它非常强大,镜像存储库有超过5000个修订版。如果这是你想要的,你可以推回变更集。

答案 3 :(得分:2)

是的,您必须使用最近的Mercurial“船员版”,请参阅Mercurial维基上的CrewRepository页面。

当Mercurial 1.3于7月1日发布时,hgsubversion应该开始维持一个稳定的分支。至少那是IRC上的字(irc.freenode.net上的#hgsubversion)。

答案 4 :(得分:1)

我已经使用Subversion好几年了,但我有兴趣尝试这种分布式VCS的想法。 (我想使用git,但它在Windows上并没有那么好用于我的工作。所以我接下来想尝试Mercurial。)

我最初想要推送和使用Subversion服务器。所以我尝试了选项1,hgsubversion。我使用的是hg 1.1.2的Ubuntu 9.04(Jaunty)。我按照该网页上的说明进行操作。这一切似乎安装得很好。但是当我尝试 hg svnclone 命令时,出现了“未知命令”错误。进一步的挖掘显示,现在您只需使用前缀为 svn + 的SVN URL进行 hg clone 。 e.g:

  

hg clone svn+https://server/svn/repo/

但是,我收到了一条错误消息:

  

abort: could not import module encoding!

这似乎是一个known bug,但经过一些摆弄,我无法弄清楚我要做些什么来修复它。

摘要:选项1目前对我不起作用。其他选项不适合我想要的工作流程。

更新:我再次使用Mercurial 1.2.1尝试了它,并得到了相同的结果。有人告诉我,正在开发的 mercurial-crew 分支应该有效。

答案 5 :(得分:0)

我几个月来一直在使用hgsubversion。您可能缺少某些功能但已准备好投入生产。

OGRE和其他许多人决定使用hgsubversion,因为它很快。