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 フォルダのフォルダ比較ウィンドウが開きます。
