私
initialized
は上のMercurialプロジェクトMachine A
、committed
私の変更、およびuploaded
それらのリモートリポジトリへの変更。次に
cloned
、そのリポジトリを に追加しMachine B
、committed
いくつかの変更を加えて、uploaded
それらを同じリモート リポジトリに移動します。
どちらの場合も、同じコマンドで変更をアップロードしました。
hg push https://username:password@domain/user/repository/
マシン A に戻りpull
、リモート リポジトリから編集し、次のコマンドを使用して GUI ツールを使用merg
して 2 つの変更セット間の変更を編集しました。KDiff3
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 --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