gpt4 book ai didi

mercurial - 重新启动关闭的分支会创建两个头,如何插入?

转载 作者:行者123 更新时间:2023-12-04 19:05:54 24 4
gpt4 key购买 nike

我创建了各种分支,我关闭了它们,因为它们无处可去。这些分支之一被称为 v2 .它在过去的某个时间关闭了。

在进一步开发时,我创建了另一个分支,也称为 v2 . Tortoise Hg 警告我这个分支已经存在,以及我想“重新启动它”还是“提交到当前分支”。我要求重新启动它。

更多开发发生在 v2 (几次提交),我决定推送到一个已经有我的项目的远程存储库(包括之前关闭的 v2 )。然后我收到消息

abort: push creates new remote head fce4441f5150 on branch 'v2'!
hint: merge or see "hg help push" for details about pushing new heads

我真的不想 merge (我假设消息的意思是“将旧的 v2 与新的 v2 merge ”),因为这些分支没有太多共同之处。我关闭了 v2而不是把它挂起来,因为我不想再使用它了。 (关于重用名称的自我鞭打在问题后面出现,不用担心)

这让我有了新的头脑。 hg outgoing向我展示了我期望发生的事情......
# this is the first commit for the new v2

changeset: 221:ba47b76010ef
branch: v2
user: w <w@home>
date: Fri Jul 18 14:42:08 2014 +0200
summary: New version: all frames are subclasses, frames are organiz

# some more commits for the new v2

# last commit for the new v2

changeset: 225:fce4441f5150
branch: v2
tag: tip
user: w <w@home>
date: Wed Jul 23 13:17:19 2014 +0200
summary: added manualstart.sh

... 但是 v2 (旧的,已关闭)已存在于存储库中:

enter image description here

我现在应该去哪里?
  • 我应该强制在远程存储库上创建一个新头吗?我不喜欢 --force参数,因为它过去让我受到了很多诅咒。我想确保这次没问题。
  • 或者是其他东西?

  • 总的来说,我了解到重用以前关闭的分支不是一件好事,对吗?还是只要我采取一些预防措施就可以了?

    最佳答案

    你是对的,重用分支名称不是一件好事。

    我看到了两种方法来完成你所需要的——它们都不是真的“好”。

    1)您已经提到了 -f 选项。
    如果您害怕推多个头,请尝试按步骤推:

    hg push -r <close commit of old branch>
    hg push -r <parent of 221>
    hg push -f -r 221 --new-branch
    hg push

    2) 另一种选择是从旧分支到新分支进行 No-Op-Merge。
    hg update -C 221
    hg merge v2
    hg revert -a -r 221
    hg commit -m "old is marked as commited"

    但请注意,这可能会导致 future merge 出现问题,因为旧 v2 中的所有更改都被标记为已 merge ,即使它们来自侧分支或类似的。

    关于mercurial - 重新启动关闭的分支会创建两个头,如何插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909630/

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