我可以在父目录中同时使用Git和Mercurial-Git,在子目录中同时使用Mercurial hg吗?

我可以在父目录中同时使用Git和Mercurial-Git,在子目录中同时使用Mercurial hg吗?,git,version-control,mercurial,Git,Version Control,Mercurial,在我们的小团队中,我们目前在一些项目中使用Mercurial hg。我们谈到了尝试迁移到Git。我考虑将Git添加到父目录中,以允许更渐进的转换。我将是第一个采取这一行动的人——我将在大多数任务中使用Git,但我将从Mercurial hg中进行推拉 这显然要求每个版本控制忽略另一个版本控制的文件。我想确认这是可行的,同时运行Mercurial hg和git没有已知的冲突 使现代化 如果我主要使用Git,并且只在最后一步使用Mercurial—提交并从主存储库推送到远程存储库—那么风险是什么 你

在我们的小团队中,我们目前在一些项目中使用Mercurial hg。我们谈到了尝试迁移到Git。我考虑将Git添加到父目录中,以允许更渐进的转换。我将是第一个采取这一行动的人——我将在大多数任务中使用Git,但我将从Mercurial hg中进行推拉

这显然要求每个版本控制忽略另一个版本控制的文件。我想确认这是可行的,同时运行Mercurial hg和git没有已知的冲突

使现代化 如果我主要使用Git,并且只在最后一步使用Mercurial—提交并从主存储库推送到远程存储库—那么风险是什么

你可以这样做(我在以前的$workplace做了一个变体,当时我厌倦了Mercurial在历史编辑方面的缓慢和缺乏灵活性)。将
.hg
添加到
.gitignore
中,并将
.git
添加到
.hgignore
文件中。不过,我建议您不要这样做:这很痛苦,需要您对这两个VCE的内部结构都有很多了解。

您可以使用它,它:

是Git项目的半官方Mercurial桥,一次 安装后,它允许您克隆、获取和推送到 Mercurial存储库就像Git存储库一样


想法是从HG克隆到git(使用GitRemoteHG来实现这一点)。然后,您可以随心所欲地使用git,但最终仍然可以通过HG推/拉与其他人共享工作。

如果您还没有将HG-repo迁移到git-repo,您可以在临时期间同时使用git和mercurial。这样做没有风险

唯一需要注意的是使用git的情况(如下所示):

  • 情况1:管理hg回购,将所有版本纳入git回购

    如果您想同时管理git repo中的文件版本和hg repo版本,只需将hg repo的所有文件(包括.hg文件夹中的文件)提交到git repo中即可

  • 情况2:仅将文件管理到git repo中(没有关于hg repo的信息将记录在git repo中)

    如果您只想将文件版本管理到GitRepo中,那么您需要通过将.hg文件夹添加到.gitignore文件中来忽略HgRepo的信息(如torek所述)


当您准备将hg-repo迁移到git时,请保留迁移的git-repo以进行版本控制。

是的,这是可能的。但是在大多数情况下,这是不必要的,因为您需要做额外的工作来将相同的内容管理到两个版本控制系统中。相反,常见的方法是将hg迁移到git。这个问题非常具体,所以尽管我不认为这是一个骗局,但另一个问题涵盖了很多相同的方面:@MarinaLiu MSFT,迁移似乎是正确的一步,但并不是每个人都准备好了。请看一下我的更新,让我知道你的想法。@Ben,所以两者都使用没有风险。我在不同的情况下添加了答案,你可以选择你需要的情况。@Ben,你得到帮助你解决问题的答案了吗?如果是,您可以单击标记答案吗√ 答案左边的符号?它也将使其他遇到类似问题的成员受益。上一次对该项目的承诺是两年前。该项目是否仍受支持,是否可靠?谢谢!如果我主要使用Git,并且只在最后一步使用Mercurial—提交并从主存储库推送到远程存储库—那么风险是什么?还会痛吗?为什么?如果您是唯一一个进行提交的人,并且您使用此方法,那么应该会容易得多。困难的是当其他人提交时重新同步存储库。不是真的,不是。这个项目是专有的,我真的不想(或没有时间)去构建人工示例。