我正在尝试在Git和Mercurial之间做出决定,无论我做出什么决定,我都想知道从一个SCM转移到另一个有多困难。从Mercurial迁移到Git并返回毫不费力?
我知道在这两种工具中都有导出+导入选项,我只想知道它是否会保留诸如分支,标签等内容。此外,是否还会有其他含义,如错误跟踪器等提交的错误引用。?
我正在尝试在Git和Mercurial之间做出决定,无论我做出什么决定,我都想知道从一个SCM转移到另一个有多困难。从Mercurial迁移到Git并返回毫不费力?
我知道在这两种工具中都有导出+导入选项,我只想知道它是否会保留诸如分支,标签等内容。此外,是否还会有其他含义,如错误跟踪器等提交的错误引用。?
我先回答你的两个问题:
它可以毫不费力地大多在两个系统之间的映射,因为它们的基本模型非常相似。但是,有几件事情无法来回映射。两个例子:Mercurial中的名称分支在Git中没有直接的等价物,并且Meritial不支持Git章鱼合并。
有像hg-git这样的工具可以很好地让你使用Mercurial作为Git仓库的客户端。这是系统之间的双向桥梁,这意味着您可以使用它来双向转换。它适用于很多人,并且会保留标签和分支等内容。
是的,会有来自外部工具的引用断开 - 虽然这两个工具都使用SHA-1来生成变更集散列,但它们有不同的事情,因此为不同的ID提供了本应相同的变更集。
我也必须注意到,如果你不对每个系统做任何太疯狂的事情,这并不难。对我而言,从HG到Git是相当痛苦的,因为git可以通过快速导出将每个HG提交记录为git-commit(至少我认为它是快速导出)。 这可能是麻烦 - 但对于大多数基本的事情,它工作正常。 – Tigraine 2011-12-14 12:20:46
@Tigraine:我完全同意。两个系统之间的基础模型非常相似,因此98%可以直接映射到它们之间。我会更新我的答案,使其听起来不那么困难。 – 2011-12-14 12:25:09
而Git和Mercurial是根普遍,他们有一些显著差异
你” d更擅长选择一个并坚持它,而不是浪费你的时间试图找出哪个更好。他们都很好。两者都不是错误的选择。 – 2011-12-14 10:57:12