2009-10-20 28 views
15
  1. initializedMachine Acommitted我變化的水銀項目和uploaded他們遠程倉庫。合併之後推送到遠程存儲庫「創建新的遠程磁頭」 - 這是不好的?

  2. 然後我cloned該存儲庫上Machine Bcommitted一些額外的變化和他們uploaded相同的遠程倉庫。

在這兩種情況下,我上傳使用相同的命令的變化:

hg push https://username:[email protected]/user/repository/ 

現在我回來了計算機A上,我已經pull **從遠程倉庫和ED * * merg **編任何使用的命令使用** KDiff3 GUI工具兩個變更集之間的變化:

hg pull 
hg merge 
hg commit 

何wever,當我試圖推動從機器A的最新更改回遠程倉庫拉這之後和合並,我得到這個消息:

hg push https://username:[email protected]/user/repository/ 
pushing to https://username:[email protected]/user/repository/ 
searching for changes 
abort: push creates new remote heads! 
(did you forget to merge? use push -f to force) 

爲什麼它說:「你忘了合併」? - 我完成了合併。

這是不好的強制推動和創建「新的遠程頭」?

如果是這樣,我該如何避免這種情況?

UPDATE:

我跑了 「hg merge」 再次得到這個輸出:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved 
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon 

於是我就 'hg up --clean',它報道:

6 files updated, 0 files merged, 1 files removed, 0 files unresolved 

現在,當我鍵入'hg heads',它表示:

changeset: 11 
tag:   tip 
parent:  9 
user:  eggdrop 
date:  Tue Oct 20 16:27:44 2009 -0400 
summary:  Machine A after merge 

changeset: 10 
parent:  7 
user:  chickensoup 
date:  Thu Oct 15 03:27:23 2009 -0400 
summary:  Machine B changes to be pulled onto Machine A 
+0

您是否承諾合併? – avakar 2009-10-20 21:03:47

+0

是的,我解決了所有的分歧,並進行了合併。所以,當我輸入「hg status」時,沒有輸出,因爲所有的地方已經簽入。 – eggdrop 2009-10-20 21:44:02

回答

9

您跑hg up --clean。這意味着你取消了合併,這意味着你仍然需要合併。合併時有一個未解決的文件。重讀你的錯誤信息:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved 
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon 

您需要解決的合併衝突,然後完成合並與hg resolve。那麼你將成功合併你的兩個頭。

並回答你的問題:不,它不是有兩個遠程頭。這意味着在將其他任何內容推送到遠程服務器之前,您需要合併它們(最好是ASAP)。

所以要修復,只需運行hg merge,解決一個衝突,然後運行hg resolve

2

第一步:用hg log查看您的更改。 下面沒有我的情況下幫助:

  • hg pullhg merge(你拉前檢查對汞進入)
  • 或:hg pull --rebase

但這種幫助。

hg merge [revision] 

我發現我需要明確合併一些看起來像頭像的修訂版。

+0

+1 - 也必須這樣 – 2013-03-27 09:25:25

相關問題