gpt4 book ai didi

mercurial - 使用 convert 从 Mercurial Repo 中的子文件夹创建一个新的 repo

转载 作者:行者123 更新时间:2023-12-04 01:08:40 26 4
gpt4 key购买 nike

我试图从现有的 Mercurial Repo(调用 MainRepo )中提取一个文件夹(称为 Project1 ),使用 Mercurial 到 Mercurial 转换的 Convert 扩展。我在 Windows XP 下遵循了 Mercurial 开发人员(以及网络上的其他地方)描述的方法:

 C:\MainRepo>echo include Project1 > ~myfilemap
C:\MainRepo>echo rename Project1 . >> ~myfilemap
C:\MainRepo>hg convert --filemap ~myfilemap . C:\Project1Repo
C:\MainRepo>cd \Project1Repo
C:\Project1Repo>hg update

这将创建带有 Mercurial 文件夹/文件的新存储库 (Project1Repo)。
但它没有:

1) 执行与文件夹 Project1 中的项目更改相关的历史记录。 (仅存在 MainRepo 的第一个历史条目和 Convert 项目)。

2) 将所有源代码文件从 MainRepo\Project1 复制到 Project1Repo。

我在 stackoverflow 中看到了其他类似的问题和答案,但这些似乎没有帮助(我遵循了其中讨论的方法):
Can I clone part of a Mercurial repository?

所以问题是:如何从 MainRepo 中提取子文件夹,只保留完整的子文件夹历史记录并完成到新的 Repo 并同时传输源文件? (虽然我猜直接副本会做最后一次)。重要的是保留历史记录 - 在这种情况下,我可以在日期或变更集编号之后进行。

任何帮助都非常感谢,因为我对此比较陌生

谢谢

最佳答案

您列出的工作流程是正确的。 convert就是这样的扩展旨在工作。

您的问题表明 hg convert 的 repo 输出实际上是空的(除了“MainRepo 的第一个历史条目和一个转换项目”)。这表明 convert无法找到您的文件映射中指定的路径。

你确定给你的路径include说法正确吗?

您的 include 中给出的目录名称语句必须是存储库根目录的完整路径。例如,您的 include 语句:

include Project1

要求 Project1 的路径实际上是:
C:\MainRepo\Project1

Project1实际上位于 MainRepo 的其他地方,转换后您将得到一个空的 repo。

关于mercurial - 使用 convert 从 Mercurial Repo 中的子文件夹创建一个新的 repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843479/

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