gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:59:21 28 4
gpt4 key购买 nike

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

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

最佳答案

是的。使用 convert 扩展将 projectA 向下移动一个目录级别:

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

您所在的 filemap.txt有这一行:
rename . projectA

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

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

然后你进入 Super-Project_B 并做一个 hg pull -f /path/to/projectA-redone .您需要 -f因为否则你会被告知 repos 是不相关的,因为它们没有共同的变更集。

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

这样做之后,B 将在 projectA 子目录中拥有所有 A,并且所有历史记录都将完好无损。

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

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