21

最近有人问了一个类似的问题,但不一样。

Mercurial 网站有一个详细的页面列出了 4 种不同选项的比较,以使 Mercurial 和 Subversion 互操作。

我想知道是否有人尝试过其中的一种或多种,​​并且可以将任何非常好的或非常糟糕的经历联系起来。hgsubversion 下载的注释说

hgsubversion 是 Mercurial 的扩展,它允许将 Mercurial 用作 Subversion 客户端。现在它还没有准备好用于生产。仅当您准备好破解它并深入研究 Mercurial 和/或 Subversion 的内部时,才应该使用它。

这几乎是在向我展示“放弃希望,所有进入这里的人”或“入侵者将被逮捕”的标志。所以我只是想知道对于没有太多额外时间的人来说,这个或任何其他替代方案是否值得尝试。

4

6 回答 6

4

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

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

于 2009-05-15T20:46:02.280 回答
3

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

我发现它非常健壮,具有超过 5000 次修订的镜像存储库。如果这是您想要的,您可以将变更集推回。

于 2009-12-01T10:29:02.387 回答
3

我刚刚开始使用选项 4,hgsvn。尽管 Mercurial 页面上说了什么,hgsvn 0.1.7确实支持推回 svn 存储库。

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

于 2009-07-29T13:48:45.977 回答
2

是的,您必须使用 Mercurial 的最新“船员版本”,请参阅 Mercurial wiki 上的 CrewRepository 页面。

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

于 2009-05-21T00:07:07.743 回答
1

我已经使用 Subversion 好几年了,但我对尝试这种分布式 VCS 想法很感兴趣。(我想使用 git,但它在 Windows 上不太好,因此无法在我的工作中使用它。所以我接下来想尝试 Mercurial。)

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

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

但后来,我收到一条错误消息:

abort: could not import module encoding!

这似乎是一个已知的错误,但经过一番摆弄后,我无法弄清楚我要做什么来修复它。

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

更新:我用 Mercurial 1.2.1 再次尝试,得到了相同的结果。有人告诉我,开发中的mercurial-crew分支应该可以工作。

于 2009-05-06T00:43:16.050 回答
0

我已经使用 hgsubversion 好几个月了。您可能缺少一些功能,但它已准备好用于生产。

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

于 2010-07-29T04:03:46.797 回答