gpt4 book ai didi

Mercurial:如何从存储库中仅导入部分变更集?

转载 作者:行者123 更新时间:2023-12-03 06:47:15 24 4
gpt4 key购买 nike

我有一个名为“我的项目”的存储库,基于一个名为“framework”的框架。他们两个都有各自的存储库,它们之间不相关,每个分支和标签。我想在我的存储库中接收“框架”的更新,但仅来自“默认”分支,而不是其他分支。当然,我不想在我的存储库中包含“框架”的标签,因为它是一个完全不同的项目。

我有 Mercurial HG,并且我希望能够直接从“管理存储库”页面从“框架”存储库中提取更改。

此外,我只想下载最新的变更集,因为我不久前开始了我的项目。如果我可以将“框架”的默认分支重命名为我的存储库中的其他名称,那就完美了,例如“框架变更集”。

注意:我没有“框架”存储库的写入权限。

我尝试按照 Mercurial wiki 所说的操作:

hg pull -f -r default "framework"

一切都很好,直到我意识到我已经从“框架”存储库下载了所有标签,并且我已经从远程存储库下载了所有变更集。此外,当在TortoiseHG->配置->同步中,我将“框架”存储库作为该项目的远程存储库,并从远程存储库中拉取时,我从该存储库中获取了所有分支。

当然,我无法更改默认分支名称,并更新了我的默认分支,即使我尝试使用 hg Convert --branchmap (但我不知道如何使用它)。

有办法解决我的问题吗?甚至是部分解决方案?

最佳答案

我认为您可以通过结合使用以下方法来解决此问题:

拉取特定分支

使用命令行: hg pull -r <branch name>

使用 TortoiseHg v1.1.X:

  1. 使用标有“下载并查看传入变更集”的按钮检查传入变更集
  2. 右键单击要拉动的分支尖端,然后选择拉到此处
  3. 使用拒绝按钮拒绝其余变更集

删除现有标签

您始终可以手动编辑 .hgtags 文件以删除在“框架”分支上创建的标签,但我不知道如何在没有标签的情况下提取变更集。

更改分支名称

使用mq通过扩展,您可以更改新“框架”变更集所在的命名分支。有关如何在 TortoiseHg v1.1.X 以及 CLI 中执行此操作的说明,请参阅“Apply patches in branch”的答案。这里的基本思想是创建一个具有您想要的名称的命名分支,导入您拉入补丁队列的所有“框架”变更集,然后将它们应用到新的命名分支。他们将从“框架”中摆脱分支名称,并使用您应用它们的分支的分支名称。

如果您要多次从“框架”中拉取,则需要使用补丁队列在每次拉取时仅移动新的变更集。应该很容易看出哪些变更集尚未移动。

关于Mercurial:如何从存储库中仅导入部分变更集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796908/

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