【问题标题】:why is a new head created during this push?为什么在这个推送过程中会创建一个新的头部?
【发布时间】:2014-05-16 18:54:24
【问题描述】:

我的生产代码在default 分支中,新功能进入命名分支,当新功能正常时与default 合并。我最近将开发daytemp 合并到default 并开始在分支separate processes 上工作。我将必须的内容推送到 bitbucket,这是它现在显示的状态:

我意识到default 中存在错误,因此,在另一台计算机上,我拉取并更新到default 并修复了错误。我承诺提交a7cf17ca158e“错误:所有条都显示...”)并希望推送到 bitbucket。这是该计算机上的 Tortoise HG 显示的内容:

你能帮我理解问题出在哪里吗?从mercurial docs 我了解到我有一个相当标准的情况(我有两个头,一个用于default,一个用于separate processes)所以我不明白在推送时我会创建哪个新的bitbucket 警告我。

编辑 原来,在Vince 的评论之后,确实有一个新的头部隐藏在图表下方。

输出hg outgoing:

changeset:   152:ce343f208e48
parent:      150:ebd10baed373
user:        wojtek
date:        Thu May 15 06:21:43 2014 +0200
summary:     bug: time string when no connection

changeset:   161:a7cf17ca158e
tag:         tip
parent:      159:dd4af8e3f7d5
user:        wojtek
date:        Fri May 16 19:55:54 2014 +0200
summary:     bug: all bars were displayed after a day (not cleaned up)

比变更集152 是罪魁祸首。将其与当前的default 合并后,推送顺利。

【问题讨论】:

  • 您是否尝试过拉取,看看您是否在本地存储库中获得了两个头?
  • 是的,我试过了。没有变化。我是唯一一个处理代码的人,所以在我不知道的情况下不可能有任何更改。但是,是的,我确实尝试过。
  • hg outgoing 的时候你有什么?您能否在当前的存储库中有另一个 default 头,在该范围内不可见,但也试图被推送?我的意思是这两个头可能已经在你的本地仓库中了。
  • @Vince 我将hg outgoing 的输出添加到我的问题中。没有其他default 头。
  • @Vince:你是对的。 default 的新头像隐藏在图表下方。您能否将您的评论复制到答案中以便我接受?

标签: mercurial bitbucket tortoisehg


【解决方案1】:

hg outgoing 时你有什么?

您能否在当前存储库中有另一个 default 头部,在该范围内不可见,但也尝试被推送?我的意思是这两个头可能已经在您的本地仓库中。

【讨论】:

    【解决方案2】:
    • hg help push 中所述

    默认情况下,push 不允许在目的地创建新的 head, 因为多个磁头会导致不清楚使用哪个磁头。

    如果您想允许推送创建一个新的命名分支,但目标位置不存在,请使用 --new-branch

    • (对于 Mercurial)无关紧要的是这些新头是在单个分支中还是在不同的分支中,它们无论如何都是额外的头

    • TortoiseHG 工作台中的默认推送设置没有任何存储库的复选框“新分支”选项。只需在推送更改之前启用它,其中包含在远程存储库分支“单独进程”上之前不存在的更改集。只需在首次推送任何新分支之前启用新分支即可

    【讨论】:

    • 我不认为这是问题所在。远程牧场已经存在于 bitbucket 中,当我第一次(从第一台计算机)推送它时,Tortoise HG 询问我是否要远程创建它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2023-01-17
    相关资源
    最近更新 更多