2

我是一个满意的 mercurial 用户,我想用它来处理 github 上的一些 repos。我已经安装hg-git(仍然有连接问题,但这不是问题)并查看了关于 SO 的文档和各种问题,但我仍然不确定它提供的解决方案有多完整。

  1. git / github 是否有一些重要的功能hg+hg-git支持不可用、有限或容易出现问题?我使用分支和合并、标签,偶尔还使用 mercurial 的commit --amend命令。我真的不需要书签、subrepos、自定义钩子或 mercurial 补丁队列。

  2. 由于 和 的不同分支模型,是否存在问题或git限制hg?(这个有六年历史的问题表明,这在当时并不是一种无缝的体验。)

  3. hg-git网站上,我读到“理论上,变更集 ID 不应该改变 [在 hg -> git -> hg 转换中],尽管这可能不适用于复杂的历史。” 我应该对此有多担心?如果我只是在github一个hg仓库之间同步(两个方向)会发生这种情况吗?

我正在研究两个用例:

A)hg用作大型项目的 github 客户端,有很多分支,通常由 git 用户(master分支等)开发

B)github用于托管我使用 mercurial 开发的自己的(较小的)项目。

我不期望 100% 完全更换。我拥有并使用git,我只是更喜欢hg每天使用。我的大部分工作都是在 OS X 上完成的,如果这很重要的话。

4

1 回答 1

2
  1. 使用有限制hg-git,例如git-lfs. 使用大文件的存储库将不起作用。有一些极端情况,例如章鱼合并(与两个以上的祖先合并)会在 Mercurial 方面造成麻烦,并且在 Mercurial 中没有等价物。然而,在日常工作中,很少会遇到这些限制。在大多数情况下,hg-git 可以正常工作。
  2. Mercurial 分支无法正确反映到 Git 中,因为 git 没有相同的概念。我认为 hg-git 正在将分支映射到书签,因此您应该继续使用书签。如果您想将命名分支推送到某个 git 存储库,然后在 git 端将其重命名,则无法在 Mercurial 中重命名命名分支,因此请避免命名分支。
  3. 在你的情况下,它很可能会好起来的。hg->git->hg 错误的发生是由于,例如名称分支转换、缺少章鱼合并等。
于 2016-12-02T18:38:34.593 回答