gpt4 book ai didi

mercurial - 如何将一个 Mercurial 存储库(包括历史记录)作为子目录导入另一个 Mercurial 存储库,而不使用子存储库?

转载 作者:行者123 更新时间:2023-12-02 19:28:41 27 4
gpt4 key购买 nike

这听起来有点复杂,所以让我解释一下:

Project_A 已在其自己的 Mercurial 存储库中存在了一段时间。 Project_A 现在正在 merge 到一个新的 super 项目 Super-Project_B。 Super-Project_B 也有一个 Mercurial 存储库。我们希望 Project_A 不是一个子存储库,而只是一个普通的子存储库,但我们也不想丢失历史记录。有办法做到这一点吗?

最佳答案

是的。使用转换扩展将projectA向下移动一级目录:

hg convert --filemap filemap.txt projectA projectA-redone

你的filemap.txt在哪里其中有这一行:

rename . projectA

(那个点可能是斜杠,但我不这么认为)。

这将为您提供一个新的存储库,projectA-redone,它具有 A 的所有历史记录,尽管所有变更集将具有不同的哈希值,因为它们的内容(路径)已更改为在所有变更集前面获取“projectA”。

然后你进入 Super-Project_B 并执行 hg pull -f /path/to/projectA-redone 。您需要-f因为否则您会被告知这些存储库是不相关的,因为它们没有共同的变更集。

最后你会做 hg merge在 Super_project_b 中,应该没有冲突(除非您已经有一个projectA目录,在这种情况下您应该选择一个不同的名称或先hg remove d它)。

完成此操作后,B 将在 projectA 子目录中拥有 A 的所有内容,并且所有历史记录都将完好无损。

关于mercurial - 如何将一个 Mercurial 存储库(包括历史记录)作为子目录导入另一个 Mercurial 存储库,而不使用子存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com