我正在尝试提取一个文件夹(称之为Project1)来自现有的 Mercurial Repo(调用MainRepo)使用 Convert 扩展进行 Mercurial 到 Mercurial 的转换。我遵循了 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
这将创建新的存储库 (Project1Repo),其中包含 Mercurial 文件夹/文件。
但它没有:
1) 继承与文件夹 Project1 中的项目更改相关的历史记录。 (仅存在 MainRepo 的第一个历史条目和 Convert 项目)。
2) 将所有源代码文件从 MainRepo\Project1 复制到 Project1Repo。
我在 stackoverflow 中看到了其他类似的问题和答案,但这些似乎没有帮助(我遵循了其中讨论的方法):我可以克隆 Mercurial 存储库的一部分吗? https://stackoverflow.com/questions/1745000/can-i-clone-part-of-a-mercurial-repository
所以问题是:如何从 MainRepo 中提取子文件夹,仅保留子文件夹历史记录完整并完整到新的 Repo 并同时传输源文件? (尽管我猜最后一个是直接复制)。保留重要的历史记录 - 在这种情况下,我可以在日期或变更集编号之后进行此操作。
非常感谢任何帮助,因为我对此还比较陌生
Thanks
您列出的工作流程是正确的。就是这样convert
扩展旨在工作。
你的问题表明回购输出hg convert
实际上是空的(除了“MainRepo 和 Convert 项目的第一个历史条目”)。这表明convert
无法找到文件映射中指定的路径。
您确定给您的路径include
说法正确吗?
您中给出的目录名称include
语句必须是存储库根目录的完整路径。例如,您的 include 语句:
include Project1
要求 Project1 的路径实际上是:
C:\MainRepo\Project1
If Project1
实际上位于其他地方MainRepo
,转换后您将得到一个空的存储库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)