mercurial – 在合併後推送到遠端儲存庫“建立新的遠端頭” – 是不是?
>我在機器A上初始化了Mercurial專案,承諾我的更改並將其上傳到遠端儲存庫.
>然後,我在機器B上克隆了該儲存庫,提交了一些其他更改並將其上傳到同一個遠端儲存庫.
在這兩種情況下,我使用相同的命令上傳了更改:
hg push https://username:password@domain/user/repository/
現在我回到機器A上,我從遠端儲存庫中拉出**,並使用** KDiff3 GUI工具使用以下命令在兩個變更集之間進行任何更改:
hg pull hg merge hg commit
但是,當我嘗試在此拉和合並後將機器A的最新更改推送到遠端儲存庫時,我收到以下訊息:
hg push https://username:password@domain/user/repository/ pushing to https://username:password@domain/user/repository/ searching for changes abort: push creates new remote heads! (did you forget to merge? use push -f to force)
為什麼說“你忘了合併”嗎? – 我完成了合併.
強制推動並建立“新遠端頭”是不是很糟糕?
如果是這樣,我該如何避免呢?
更新:
我再次執行“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– 清潔’,它報告:
6 files updated, 0 files merged, 1 files removed, 0 files unresolved
現在,當我輸入’hg頭’時,它說:
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
你跑了起來 – 清潔.這意味著你解除合併,這意味著你仍然需要合併.合併時,您有一個未解決的檔案.重新閱讀您的錯誤訊息:
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解決方案的合併.那麼你將成功地合併你的兩個頭.
並回答你的問題:不,有兩個遙控頭是不錯的.這意味著您需要在將其他任何東西推送到遠端伺服器之前將其合併(最好是ASAP).
所以要修復,只需執行hg merge,解決一個衝突,然後執行hg解決.
http://stackoverflow.com/questions/1597273/pushing-to-remote-repository-after-merge-creates-new-remote-heads-is-that-ba