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] [/aN] [/swap] [/max] [[/titleN:"<NthFileTitle>"]...][/2
| /3] <firstFile> <secondFile> [<thirdFile>] [<mergedOutputFile>]
2 者間比較の場合、2 つのファイル名を引数として指定しなければなりません。これらのファイルがファイル比較ウィンドウに表示されます。またオプションで、3 番目のファイル名を引数として指定することもできます。この引数は、ファイル比較ウィンドウでいずれかのファイルの変更を保存したときに、デフォルトの保存先ファイル名として使われます(たとえばファイル パネルを右クリックして表示されるショートカット メニューから[保存]または[名前を付けて保存]を選択した場合)。
3 者間比較の場合、3 つのファイル名を引数として指定しなければなりません。このとき、共通の親ファイル(またはベース ファイル)は中央のファイル パネルに表示されていなければなりません。これはコマンド ライン オプション /aN で指定できます。2 者間比較の場合と同様に、デフォルトのファイル保存先を指定するためにオプションのファイル名の引数を指定することができます。
3 つのファイルをマージする場合、左右のファイルに対する変更を中央のファイルへ保存する方法が最も簡単な方法です。これが共通の親ファイルを中央に置く理由です。共通の親ファイルへ変更をマージしたら、中央のファイル パネルを右クリックして[保存]または[名前を付けて保存]を選択し、マージしたファイルを保存してください。
コマンド ラインの引数は下記のとおりです。
-
/?または/h利用状況の概要を出力します。 -
/waitユーザーが Merge で比較ファイルを閉じるまで終了するのを待ちます。 -
/nowait比較ウィンドウが閉じられるのを待たないようにします。 -
/merge3 つのファイルを比較した後、共通の親ファイルに自動 3 者間マージを行います。 -
/testconflicts/mergeと組み合わせて、自動 3 者間マージによってマージの不一致が発生するかどうかを調べます。プログラムのリターン コードは発生した不一致数です。 -
/readonly比較されたファイルが編集できないようにします。 -
/aN(Nは1、2、3のいずれか) N 番目のファイル名引数が、2 つのファイルの共通の親ファイルであることを示します。共通の親ファイルは中央のファイル パネルに表示されます。3 者間比較でのみ使用します。 -
/swap左右のパネルに表示されているファイルを交換します。 -
/maxMerge のアプリケーション ウィンドウを最大化します。 -
/titleN:"<NthFileTitle>"(Nは1、2または3のいずれか) コマンド ラインで指定した N 番目のファイルを表示するファイル パネルにわかりやすいタイトルを付けます。タイトルは一重引用符または二重引用符で囲む必要があります。この機能によって、VC システムや SCM システムでファイル パネルにわかりやすいタイトルが付けられます。たとえば 3 つのパネルにそれぞれ "Djn's Revision v1.1.1"、"Common Ancestor"、"Jrs's Revision v1.1.2" などのタイトルを付けることができます。 -
/22 者間比較を実行します(デフォルト)。<firstFile> および <secondFile> の各ファイルが比較されます。<mergedOutputFile> がある場合、マージの結果はデフォルトでこのファイルに保存されます。 -
/33 者間比較を実行します(Professional Edition のみ)。<firstFile>、<secondFile>、<thirdFile> の各ファイルが比較されます。<mergedOutputFile> がある場合、マージの結果はデフォルトでこのファイルに保存されます。
例
compare c:¥temp¥file1.txt c:¥temp¥file2.txt
指定した 2 つのファイルを比較するファイル比較ウィンドウが開きます。
compare /wait c:¥temp¥file1.txt c:¥temp¥file2.txt
指定した 2 つのファイルを比較するファイル比較ウィンドウが開きます。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。
compare /wait c:¥temp¥file1.txt c:¥temp¥file2.txt c:¥temp¥merged.txt
指定した最初の 2 つのファイルを比較するファイル比較ウィンドウが開きます。2 つのうちいずれかのファイルへ変更を保存しようとした場合、デフォルトの保存先ファイルは c:¥temp¥merged.txt になります。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。
compare /wait /a1 /3 c:¥temp¥file1.txt c:¥temp¥file2.txt c:¥temp¥file3.txt
指定した 3 つのファイルを比較するファイル比較ウィンドウが開きます。ユーザーがファイル比較ウィンドウを閉じるまで、比較は終了しません。指定した最初のファイルはほかの 2 ファイルの共通の親ファイルであると判断されるので、中央のファイル パネルに表示されます。
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 [</RegServer>] [</UnregServer>] [</Automation>] [</Embedding>] [</NoSplash>] [</NoSplashDelay>] [</Options>] [</SetEditFieldsOnly>]
[<file1 [file2] [file3]> | <folder1 [folder2]>]
コマンド ラインの引数は下記のとおりです。
-
/RegServer強制的に Merge がすべてのオートメーション機能を再登録するようにします。 -
/UnregServer強制的に Merge がすべてのオートメーション機能の登録を削除するようにします。 -
/AutomationMerge をオートメーション サーバーとして起動する場合に使います。あまり一般的ではありません。 -
/EmbeddingMerge をオートメーション サーバーとして起動する場合に使います。あまり一般的ではありません。 -
/NoSplashMerge の起動時にスプラッシュ画面を表示しません。 -
/NoSplashDelayMerge 起動時のスプラッシュ画面表示の際の 2 秒の遅延をオフにします。 -
/OptionsMerge の[オプション]ダイアログを表示します。 -
/SetEditFieldsOnlyコマンド ラインでファイルおよびフォルダー引数を指定しても、それらはファイル名フィールドやフォルダー名フィールドの設定には使用されますが、比較は自動的に開始されません。 -
<file> | <folder>オプションのファイル名またはフォルダー名です。ファイルの場合はファイル比較ウィンドウが、フォルダーの場合はフォルダー比較ウィンドウが開きます。
例
merge test1.txt test2.txt test3.txt
Merge が起動し、指定された 3 ファイルのファイル比較ウィンドウが開きます。
merge c:¥temp¥first-folder c:¥temp¥second-folder
Merge が起動し、指定された 2 フォルダーのフォルダー比較ウィンドウが開きます。
