2012-08-28 76 views
0

我已經與mqextension合併兩個儲存起來後,給我一個信息庫,看起來像這樣:推分支合併無關庫

.. [a] --- [b] --- [c] --- [d]<- default branch 
       /
     [x] --- [y] <- feature branch 

的問題是,當我試圖把這個我得到:

hg push --new-branch 
abort: push creates new remote head x! 
(did you forget to merge? use push -f to force) 

我該如何解決這個問題?我假設我需要將[a]與[x]合併,以便我有一個共同的祖先。這可能嗎?如果我只是強迫推送,會導致問題嗎?

編輯 - 多一點研究,我發現我正在努力簡化一點也不爲過。該庫看起來像是這個倉庫後:

.. [a] --- [b] --- [c] --- [d]<- default branch 
     \     
     [f] --- [g] --- [z] <- integration branch 
        /
      [x] --- [y] <- feature branch 
     /
     [w] <- default branch from old repository. 

我認爲正在發生的事情是,我有默認分支有兩個頭,並且hg不希望將他們兩個都推送到主。

我應該將兩個默認值合併在一起嗎?

+0

時間是否真的從你的圖中從右到左流動?也就是說,是'[a]'還是'[x]',而'[d]'是通用根?從錯誤信息聽起來是這樣的,但是你說的是爲'[a]'和'[x]'添加一個普通的*祖先*。所以我很困惑:) –

+0

不知道如果我描述時間的最佳方式,但時間是在字母順序,所以[d]在[f]和[w]之前提交。讓我知道是否需要修改圖形以更具描述性。 – metrix

回答

0

沒有理由合併兩個不相關的存儲庫會導致此問題。我剛剛嘗試過,沒有任何問題。

如果時間在圖中從左向右流動,那麼您只有一個頭[d]。該圖看起來與我預期在兩個回購合併之後一樣。

錯誤消息看起來像別人已將更改推送到中央存儲庫,因此您需要執行hg pullhg merge將其更改合併到您的分支中。

編輯 - 編輯添加更多信息後,好像你在默認分支上實際上有兩個頭,是的,你應該將它們與hg merge合併。

+0

我認爲OP的圖形是向後的。這是'推動創造新的遙遠的頭x!'的唯一的解釋。我無法從左到右地重現它。 –

+0

我認爲OP的圖形是按照從左到右的順序前進的,因爲他說他合併了兩個不相關的存儲庫,這就是當你這樣做時圖形的樣子。對錯誤的解釋可能是其他人推動其變更的標準解釋。 –

+0

是的,可能是OP在錯誤消息中替換了'x',但其實際上對應於'[d]'而不是'[x]'。然後從左到右是有道理的。也許他/她會啓發我們。 –