web-dev-qa-db-ja.com

Mercurial(v1.0.2)でマージの競合を解決する方法は?

Mercurial 1.0.2を使用して、マージの競合があります。

merging test.h
warning: conflicts during merge.
merging test.h failed!
6 files updated, 0 files merged, 0 files removed, 1 files unresolved
There are unresolved merges, you can redo the full merge using:
  hg update -C 19
  hg merge 18

これを解決する方法がわかりません。 Googleの検索結果は次の使用を指示します。

hg resolve

しかし、何らかの理由で私のMercurial(v1.0.2)には解決コマンドがありません:

hg: unknown command 'resolve'

この競合を解決するにはどうすればよいですか?

36
lajos

hg <v1.1のみ有効

hgコマンドを呼び出す必要はありません。 svnとは異なり、Mercurialは競合するファイルを追跡しません。 hg statusを呼び出すと、ファイルが単に変更済みとしてマークされていることがわかります。

手動でファイルを修正してコミットするだけです。

14
avakar

Hg 1.1+のコメントで回答をハイライトするには:

Hg 1.1 +の場合、ファイルを手動で修正してから

hg resolve -m test.h

ファイルをマージ済みとしてマークします。

79
David Sykes

追跡の競合は Mercurial 1.1 で導入されました。これは使用している新しいバージョンです(実際にアップグレードする必要があります。Mercurial1.1は2008年12月にリリースされました) 。そのバージョンでは、svn resolveと同様に機能するresolveコマンドを取得しました。

覚えているように、Mercurialは、 マージツールを設定していない限り、競合がある場合、ファイルにマージマーカー(<<<<および>>>>行)を残します。 。これは新しいバージョンにも適用されます-マージツールが構成されておらず、競合が発生したときにマージマーカーを取得します。その後、ファイルを手動で修正し、hg resolveで解決済みとしてマークできます。

10
Martin Geisler