【问题标题】:How to get rid of older mercurial heads?如何摆脱旧的水银头?
【发布时间】:2011-03-09 17:15:00
【问题描述】:

您好,我希望您能从我的 i/o 中告诉您如何继续将所有内容合并到最新更新而不会丢失我的更改:

$ hg merge
avbryter: grenen 'default' har 4 huvuden - sammanfoga med en specifik rev
(kör 'hg heads .' för att se huvuden)
ubuntu@ubuntu:/media/Lexar/montao$ hg heads
ändring:     192:e571b17295e9
märke:       tip
förälder:    175:f50d4c4461e5
användare:   tekniklas
datum:       Sat Jan 08 04:45:07 2011 +0000
kortfattat:  twitter support added

ändring:     191:9e419ce3e7e1
användare:   tekniklas
datum:       Wed Mar 09 12:56:27 2011 +0000
kortfattat:  adsense maps

ändring:     159:f8d974793b12
förälder:    157:ef1d955b9236
användare:   tekniklas
datum:       Sat Dec 18 17:05:45 2010 +0000
kortfattat:  remove

ändring:     89:008a2ac46b4f
användare:   tekniklas
datum:       Sun Aug 01 07:10:40 2010 +0000
kortfattat:  classifiedsmarket/market/market_ad_preview.html

ubuntu@ubuntu:/media/Lexar/montao$ 

最新版不错,想“丢”老头。

更新。继续提示后,这是 hg Heads 的最新输出:

    $ LC_ALL=C hg heads
changeset:   195:fa7d0ec3760d
tag:         tip
user:        tekniklas
date:        Fri Mar 11 06:04:17 2011 +0000
summary:     searchbox

changeset:   192:e571b17295e9
parent:      175:f50d4c4461e5
user:        tekniklas
date:        Sat Jan 08 04:45:07 2011 +0000
summary:     twitter support added

changeset:   159:f8d974793b12
parent:      157:ef1d955b9236
user:        tekniklas
date:        Sat Dec 18 17:05:45 2010 +0000
summary:     remove

changeset:   89:008a2ac46b4f
user:        tekniklas
date:        Sun Aug 01 07:10:40 2010 +0000
summary:     classifiedsmarket/market/market_ad_preview.html

编辑,当前问题状态是:

$ LC_ALL=C hg heads
changeset:   195:fa7d0ec3760d
tag:         tip
user:        tekniklas
date:        Fri Mar 11 06:04:17 2011 +0000
summary:     searchbox

changeset:   192:e571b17295e9
parent:      175:f50d4c4461e5
user:        tekniklas
date:        Sat Jan 08 04:45:07 2011 +0000
summary:     twitter support added

changeset:   159:f8d974793b12
parent:      157:ef1d955b9236
user:        tekniklas
date:        Sat Dec 18 17:05:45 2010 +0000
summary:     remove

changeset:   89:008a2ac46b4f
user:        tekniklas
date:        Sun Aug 01 07:10:40 2010 +0000
summary:     classifiedsmarket/market/market_ad_preview.html

ubuntu@ubuntu:/media/Lexar/montao$ LC_ALL=C hg --config ui.merge=internal:local merge 195
abort: merging with a working directory ancestor has no effect

【问题讨论】:

  • 我想问题完全用英文发布会更好。
  • 你自然是完全正确的。对于取决于我的工作 UI 的仓促复制/粘贴,我深表歉意。
  • 您可以通过在命令前添加LC_ALL=C 将大多数Linux 程序的输出切换为英文。喜欢LC_ALL=C hg heads

标签: mercurial


【解决方案1】:

Mercurial 旨在为您的工作建立一个永久的历史,因此它的正常使用模式都不包括“摆脱”老头。

最类似于 Mercurial 的方法是合并该头部以从中选择任何内容。

hg update tip
hg --config ui.merge=internal:local merge 191 # keep my files

找到here
这将消除该头部,从中不选择任何内容。

实际上将其从历史中删除的其他选项包括只是做:

hg clone -r tip myrepo mynewrepo

这会为您提供一个新的克隆,它只有您最新的头和它的祖先(不是它的兄弟头),如果您喜欢结果,您可以用它替换旧的 repo。

如果您购买 keep-everything-forever 模型(我愿意),这通常会比较差,如果其他人已经为您的 repo 提供了克隆,则根本不起作用。

【讨论】:

  • 酷!我试过了,我得到信息“与工作目录祖先合并没有效果。我想删除旧头的原因是它们是错误的,我还没有学会使用头。
  • 当你没有“禁止多头”钩子然后你尝试添加一个钩子时,摆脱旧头非常有用:你必须首先“清理”你的存储库,否则没有人可以工作了。 . :-)。所以,感谢您提供指向此常见问题解答的指针。顺便说一句,能够将 --close-branch 应用于未命名的人会很好。
  • 如我在第一个示例中展示的那样,将头向后合并可以让您摆脱“禁止多头”的钩子——如果我是你,这就是我要做的。另一方面,近枝仍将其保留为头部(只是稍微隐藏的头部),因此它不会越过您的钩子。进行合并。
  • 感谢您的继续和通知。我尝试进行合并并获得中断: $ hg --config ui.merge=internal:local merge 195 \n avbryter: 与工作目录祖先合并无效
  • 如果您在合并时收到该消息,那么您并没有将头与(不同的)头合并。根据定义,两个头不能有祖先/后代关系。您是否仍然更新到修订版 195?你可以用'hg parents'检查一下。如果是这样,那么该命令将 195 与 195 合并,这并没有多大作用。
【解决方案2】:

现在您可以通过以下方式关闭您的分支机构(匿名或不匿名):

hg commit --close-branch -m "Closing branch."

您需要在要关闭的分支中才能执行此操作。

我认为关闭分支比合并它丢弃更改更好,因为它具有更好的含义。关闭时您说“此更改不再有用”,合并时您说“我喜欢更改,但它们已经手动包含”(但也许是您想要的)。

如果您不想/无法更新Can you close a Mercurial branch without updating to it first?,您可以查看此相关问题Mercurial: beheading a head 或此问题。

【讨论】:

    【解决方案3】:

    您可以关闭旧分支。见article from official wiki

    【讨论】:

    • 关闭分支仅适用于命名分支,它们是同一(默认)分支上的头。
    • 你应该添加链接的信息。现在这个答案没用了。
    【解决方案4】:

    尝试与最新的远程头合并,然后推送您的提交

    hg merge
    hg commit -m 'merge'
    hg push
    

    【讨论】:

    • Teodor,除非我弄错了,否则这与原始海报想要的非常不同。 Niklas 想丢弃一个人头,而您的建议会将其合并。
    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2013-05-13
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    相关资源
    最近更新 更多