如何摆脱年长的mercurial头?

时间:2011-03-09 17:15:01

标签: mercurial

您好我希望您可以从我的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 head的最新输出:

    $ 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

4 个答案:

答案 0 :(得分:19)

Mercurial是关于建立你的工作的永久历史,所以它的正常使用模式都不包括“摆脱”旧头。

这种类似Mercurial的方法是合并那个头部而不从中选择任何东西。

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

找到here
这将消除那个头,从中选择任何东西。

实际上将其从历史记录中删除的其他选项包括:

hg clone -r tip myrepo mynewrepo

这会让你获得一个新的克隆,它只有你最新的头部和它的祖先(不是它的兄弟头),如果你喜欢这个结果,你可以用你的旧回购替代它。

如果你购买保持一切永远的模式(我这样做),如果其他人已经拥有你的回购克隆,那么这种情况通常会低于其他人。

答案 1 :(得分:3)

现在你可以用以下方式关闭你的分支机构(无论是否匿名)

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

在进行此操作之前,您需要进入要关闭的分支。

我认为结束分支比合并废弃变更更好,因为它具有更好的含义。当你关闭时说“#34;这种变化不再有用”,当合并你说“我喜欢这些变化”时,他们已经手动加入了#34; (但也许是你想要的)。

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

答案 2 :(得分:1)

您可以关闭旧分支。请参阅article from official wiki

答案 3 :(得分:1)

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

hg merge
hg commit -m 'merge'
hg push