コマンド ライン リファレンス

Merge には、Merge をさまざまなアプリケーションから起動できるようにするコマンド ライン ツールがいくつか用意されています。また、オートメーション API によって、Merge の制御性をさらに高めることができます。

Compare コマンド ライン ユーティリティ

コマンド ラインから Merge を使う場合には、Compare コマンド ライン ユーティリティ(Compare.exe)の使用をお勧めします。このユーティリティ プログラムは Merge オートメーション API を使って、Merge の新規または既存のインスタンスでファイル比較を起動します。

ConsoleCompare コマンド ライン ユーティリティ

Compare.exe は Windows サブシステム(つまり、グラフィカル)アプリケーションです。これは、一般的にほかの Windows サブシステム アプリケーションから Merge を起動するのに使用されるためです。Windows のコマンド プロンプトは、このような Windows サブシステム アプリケーションが完了して戻るのを待ちません。このため、Windows コマンド プロンプトで Compare.exe/wait コマンド ライン引数を使用しても(下記の使用方法を参照)、コマンドが起動されると、Compare.exe がまだ実行中で Merge が終了するのを待っていたとしても、直ちに制御はプロンプトに戻ります。この動作では役に立たないこともあるため、Merge には ConsoleCompare.exe と呼ばれる、Compare.exe のコンソール サブシステム バージョンが付属しています。Windows のコマンド プロンプトは、このコマンドが終了するまで制御を戻しません。

使用方法

{compare | consolecompare} [/? | /h] [/[no]wait] [/merge] [/testconflicts] [/readonly] 
    [/closeIfNoChanges] [/aN] [/swap] [/max] [[/titleN:"<NthFileTitle>"]…] [/2 | /3]
    <firstFile> <secondFile> [<thirdFile>] [<mergedOutputFile>]

2 者間比較の場合、2 つのファイル名を引数として指定しなければなりません。これらのファイルがファイル比較ウィンドウに表示されます。またオプションで、3 番目のファイル名を引数として指定することもできます。この引数は、ファイル比較ウィンドウでいずれかのファイルの変更を保存したときに、デフォルトの保存先ファイル名として使われます(たとえばファイル ペインを右クリックして表示されるショートカット メニューから保存または名前を付けて保存…を選択した場合)。

3 者間比較の場合、3 つのファイル名を引数として指定しなければなりません。このとき、共通の親ファイル(またはベース ファイル)は中央のファイル ペインに表示されていなければなりません。これはコマンド ライン オプション /aN で指定できます。2 者間比較の場合と同様に、デフォルトのファイル保存先を指定するためにオプションのファイル名の引数を指定することができます。

3 つのファイルをマージする場合、左右のファイルに対する変更を中央のファイルへ保存する方法が最も簡単な方法です。これが共通の親ファイルを中央に置く理由です。共通の親ファイルへ変更をマージしたら、中央のファイル ペインを右クリックして保存または名前を付けて保存…を選択し、マージしたファイルを保存してください。

コマンド ラインの引数は下記のとおりです。

  • /? または /h  利用状況の概要を表示します。
  • /wait  ユーザーが Merge で比較ファイルを閉じるまで終了するのを待ちます。
  • /nowait  比較ウィンドウが閉じられるのを待たないようにします。
  • /merge  3 つのファイルを比較した後、共通の親ファイルに自動 3 者間マージを行います。
  • /testconflicts  /merge と組み合わせて、自動 3 者間マージによってマージの不一致が発生するかどうかを調べます。プログラムのリターン コードは発生した不一致数です。
  • /readonly  比較されたファイルが編集できないようにします。
  • /closeIfNoChanges  比較ファイルに差異がない場合は、起動している比較ウィンドウを閉じます。
  • /aNN123 のいずれか)  N 番目のファイル名引数が、他 2 つのファイルの共通の親ファイルであることを示します。共通の親ファイルは中央のファイル ペインに表示されます。3 者間比較でのみ使用します。
  • /swap  左右のペインに表示されているファイルを交換します。
  • /max  Merge のアプリケーション ウィンドウを最大化します。
  • /titleN:"<NthFileTitle>"N123 のいずれか)  コマンド ラインで指定した N 番目のファイルを表示するファイル ペインにわかりやすいタイトルを付けます。タイトルは一重引用符または二重引用符で囲む必要があります。この機能によって、VC システムや SCM システムでファイル ペインにわかりやすいタイトルが付けられます。たとえば 3 つのパネルにそれぞれ "Djn's Revision v1.1.1""Common Ancestor""Jrs's Revision v1.1.2" などのタイトルを付けることができます。
  • /2  2 者間比較を実行します(デフォルト)。<firstFile> および <secondFile> の各ファイルが比較されます。<mergedOutputFile> がある場合、マージの結果はデフォルトでこのファイルに保存されます。
  • /3  3 者間比較を実行します(Professional Edition のみ)。<firstFile><secondFile><thirdFile> の各ファイルが比較されます。<mergedOutputFile> がある場合、マージの結果はデフォルトでこのファイルに保存されます。

1.

compare c:\temp\file1.txt c:\temp\file2.txt

指定した 2 つのファイルを比較するファイル比較ウィンドウが開きます。

2.

compare /wait c:\temp\file1.txt c:\temp\file2.txt

指定した 2 つのファイルを比較するファイル比較ウィンドウが開きます。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。

3.

compare /wait c:\temp\file1.txt c:\temp\file2.txt c:\temp\merged.txt

指定した最初の 2 つのファイルを比較するファイル比較ウィンドウが開きます。2 つのうちいずれかのファイルへ変更を保存しようとした場合、デフォルトの保存先ファイルは c:\temp\merged.txt になります。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。

4.

compare /wait /a1 /3 c:\temp\file1.txt c:\temp\file2.txt c:\temp\file3.txt

指定した 3 つのファイルを比較するファイル比較ウィンドウが開きます。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。指定した最初のファイルはほかの 2 ファイルの共通の親ファイルであると判断されるので、中央のファイル ペインに表示されます。

5.

compare /wait /a3 /3 /title1:"Djn's Revision" /title2:"Jrs's Revision" /title3:"Common Ancestor" c:\temp\file1.txt c:\temp\file2.txt c:\temp\file3.txt c:\temp\merged.txt

指定した最初の 3 つのファイルを比較するファイル比較ウィンドウが開きます。3 つのうちいずれかのファイルへ変更を保存しようとした場合、デフォルトの保存先ファイルは c:\temp\merged.txt になります。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。指定されている 3 番目のファイルは他の 2 ファイルの共通の親ファイルであると判断されるので、中央のファイル ペインに表示されます。各ファイル ペインにはわかりやすいタイトルが付けられます。

Merge コマンド ライン

Merge のメインの実行可能ファイル自体(merge.exe)にもいくつかのコマンド ライン オプションがあります。それぞれの比較で新しい Merge のインスタンスが必要な場合以外、merge.exe を使用してファイルおよびフォルダー比較を開始することはお勧めしません。

merge.exe では、ファイル名やフォルダー名をコマンド ラインで指定することができます。2 つまたは 3 つのファイル パスを指定すると、Merge はそれらのファイルのファイル比較を実行します。2 つまたは 3 つのフォルダー パスを指定すると Merge はそれらのフォルダーのフォルダー比較を実行します。

使用方法

Merge [</Automation>] [</Embedding>] [</Options>] [</SetEditFieldsOnly>]
    [<file1 [file2] [file3]> | <folder1 [folder2] [folder3]>]

コマンド ラインの引数は下記のとおりです。

  • /Automation  Merge をオートメーション サーバーとして起動する場合に使います。あまり一般的ではありません。
  • /Embedding  Merge をオートメーション サーバーとして起動する場合に使います。あまり一般的ではありません。
  • /Options  Merge のオプション ダイアログを表示します。
  • /SetEditFieldsOnly  コマンド ラインでファイルおよびフォルダー引数を指定しても、それらはファイル名フィールドやフォルダー名フィールドの設定には使用されますが、比較は自動的に開始されません。
  • <file> | <folder>  オプションのファイル名またはフォルダー名です。ファイルの場合はファイル比較ウィンドウが、フォルダーの場合はフォルダー比較ウィンドウが開きます。

Information /Automation または /Embedding を使用すると、実行したプロセスの作業ディレクトリを継承しないで、ユーザーの Documents(ドキュメント)ディレクトリが作業ディレクトリに設定されます。Documents(ドキュメント)ディレクトリが見つからない場合は、ユーザーのホーム ディレクトリが使用されます。

merge test1.txt test2.txt test3.txt

Merge が起動し、指定された 3 ファイルのファイル比較ウィンドウが開きます。

merge c:\temp\first-folder c:\temp\second-folder

Merge が起動し、指定された 2 フォルダーのフォルダー比較ウィンドウが開きます。