将 Mercurial 存储库移动到现有 git 存储库的子目录中

Posted

技术标签:

【中文标题】将 Mercurial 存储库移动到现有 git 存储库的子目录中【英文标题】:Move a Mercurial repo into a sub-directory of an existing git repo 【发布时间】:2019-06-14 15:25:12 【问题描述】:

如何?

快速导出和其他方法使用空仓库

【问题讨论】:

您想将 HG 存储库转换为 Git 吗?或者你的意思是你想把它作为一个 HG 回购但把它放在一个 git 回购的目录中? 我想完全是 git 和一个 repo,所以我想将 HG repo 内容导入到 GIT repo 内的文件夹中。完成后我不想使用 HG 这是一种可行的方法:***.com/a/15223912/3195477 【参考方案1】:

简答

不知道

更长的答案

因为:

    盒子中的 Git 无法直接与 Mercurial 存储库一起使用 repo 文件夹中的 repo 是 Git 的 submodules 或 subtrees(子树更好 - 不那么头痛 - 方式)

你有:

    将 Mercurial 存储库转换为 Git 以您喜欢的方式在父级中使用此 Git-repo

【讨论】:

【参考方案2】:

稍微扩展一下我的评论:

    使用 hg convert 功能和 --filemap 选项来修改现有的 HG 存储库,使文件夹结构看起来像您想要的那样。例如,将所有内容移动到名为 /from_hg 的子文件夹中。

    使用 hg-git 等可用工具之一将修改后的 hg 存储库转换为 git 存储库

    从转换后的 git 存储库合并到您的主 git 存储库。现在,您的 git 存储库中将有子文件夹 /from_hg。你的 git repo 有两个不相关的起点。我认为这与 Linus Torvald 的“coolest merge ever”非常相似。

这个过程有点类似于https://***.com/a/15223912/3195477。

【讨论】:

以上是关于将 Mercurial 存储库移动到现有 git 存储库的子目录中的主要内容,如果未能解决你的问题,请参考以下文章

将 Git 存储库内容移动到另一个存储库,保留历史记录

如何在 Mercurial 中更新现有克隆存储库的 URL

将Git存储库内容移动到保留历史记录的另一个存储库

将本地现有目录连接到现有 Git 远程存储库

Git 与 Mercurial 存储库的互操作性

Mercurial转换扩展无法从远程Git存储库中提取