gpt4 book ai didi

version-control - 到 "backport"的工作流程更改为不同的 Mercurial (Hg) 分支?

转载 作者:行者123 更新时间:2023-12-04 02:00:14 24 4
gpt4 key购买 nike

我们有两个头。一位是我们的主要开发负责人,另一位是我直到今天才忘记的一位。我们发现了一个错误并在我们的主要开发分支中修复了它,我刚刚意识到它也应该在旧分支中修复。

我认为最好在旧分支上进行更改并将其与最新分支合并,但我们没有这样做。 mercurial 能解决这个问题吗?我们还没有尝试做这样的事情,我真的无法想象它会如何完成。

最佳答案

是的,您有两个不错的选择:

Graft:Mercurial 2.0 中的新功能

此版本引入了graft command它可以以智能方式向后移植更改。 “智能”是它将在内部使用合并,这意味着你得到

  • 支持重命名:假设您修复了文件 foo.c 中的错误。在开发分支上。在较旧的维护分支 foo.c被称为 bar.c .使用 hg graft ,更改为 foo.c可以正确合并到旧的bar.c .
  • 三路合并:嫁接涉及twisting the graph around并合并到那个临时图中。三路合并的优点是您可以使用普通的图形合并工具来解决冲突。

  • 复制 default的提示到 old-branch你只需运行
    $ hg update old-branch
    $ hg graft default

    移植:旧版本

    在我们使用移植命令之前, transplant extension是要走的路。这个简单的扩展会将变更集导出为补丁,并尝试将补丁应用到其他修订版。

    因为我们正在处理“愚蠢”补丁,所以不会考虑重命名之类的事情,并且您将不会获得对合并工具的支持,因为没有三向合并。尽管如此,我发现移植在实践中非常有效。

    使用移植很简单:
    $ hg update old-branch
    $ hg transplant default

    这非常接近运行
    $ hg update old-branch
    $ hg export default | hg import -

    除了移植还增加了一块元数据,记录了被移植的变更集中的原始变更集。这可用于跳过 future 的移植。

    关于version-control - 到 "backport"的工作流程更改为不同的 Mercurial (Hg) 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288482/

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