ディレクトリーをマージする場合、マージ・ツールは、マージされた新しい制御ディレクトリーで、両方のディレクトリーからの追加内容と削除内容を自動的に把握します。
マージされるオブジェクトがプロジェクトのメンバーである場合には、Rational Synergy は、新しくマージされたオブジェクトをプロジェクトで使用します。「コンフリクト」状態のエリアは、両方のバージョンで、共通の祖先に相対する同一の場所で変更が行われている場合に発生します。コンフリクトが含まれるファイルをマージした場合には、ユーザーが素早く簡単に見つけられるように、ツールはそのコンフリクトにマークを付けます。その上で、ツールはマージ結果を新規ファイルに書き込みます。
以下の例に、マージされたファイルにどのようにマークが付けられるかを示します。
<<<<<<<file1 filename1
conflicting lines in file1
=======
conflicting lines in file2
>>>>>>>file2 filename2
UNIX および Windows の場合、デフォルト・マージ・ツールは ccm.properties ファイルに指定されます。オブジェクト・タイプごとに異なるマージ・ツールを指定することができます。指定したマージ・ツールは、指定したタイプと、マージ・ツールが指定されていないすべてのサブタイプに適用されます。デフォルトでは、ASCII ファイル・タイプにのみ、マージ・ツールが定義されています。
ccm.properties ファイルには、マージされたファイルが正しいエンコード方式で表示されるように、以下のようにエンコード・ルールを設定することもできます。
// UNIX でソース・オブジェクトをマージして、その状況をチェックするコマンド
ccm.cli.tools.merge.ascii.unix=%ccm_home/bin/util/cc_merge %ccm_home %{encoding[null='CP1252']} %outfile %file1 %ancestor %file2^M
// Windows でソース・オブジェクトをマージして、その状況をチェックするコマンド
ccm.cli.tools.merge.ascii.windows="%ccm_home¥¥¥¥bin¥¥¥¥util¥¥¥¥cc_merge.bat" "%ccm_home" %{encoding[null='CP1252']} %outfile %file1 %ancestor %file2
ccm_merge コマンドに指定する 2 番目のパラメーターを使用して、マージするファイルのエンコード方式を指定できます。構文“%{encoding[null='CP1252']}” は、次のように解釈されます。
オブジェクト・タイプが encoding_rules 属性でワークエリアのエンコード方式を指定している場合、そのエンコード方式を使用してマージします。そうでない場合は、CP1252 エンコード方式を使用します。(encoding_rules 属性の説明については、ファイル・エンコード を参照してください。)
このパラメーターには、CP1252 以外のデフォルト・エンコード方式を指定できます。例えば、以下の構文は、オブジェクト・タイプにエンコード方式が指定されていない場合に UTF8 エンコード方式を使用することを示します。
ccm.cli.tools.merge.ascii.windows="%ccm_home¥¥¥¥bin¥¥¥¥util¥¥¥¥cc_merge.bat" "%ccm_home" %{encoding[null='UTF8']} %outfile %file1 %ancestor %file2
以下の構文は、常に CP1252 エンコード方式を使用することを示します。
ccm.cli.tools.merge.ascii.windows="%ccm_home¥¥¥¥bin¥¥¥¥util¥¥¥¥cc_merge.bat" "%ccm_home" CP1252 %outfile %file1 %ancestor %file2
有効なエンコード方式は、CP1252、UTF8、BIG5、eucJP、EUC-KR、SJIS、および GB18030 です。
マージするファイルと、これらのファイルの祖先ファイルは、同じエンコード方式を使用する必要があります。
例えば中国語のデータベースでは、ascii タイプに以下のエンコード・ルールを設定できます。
Server-encoding: GB18030
Unix-wa-encoding: GB18030
Windows-wa-encoding: GB18030
ccm_merge コマンドでデフォルト・エンコード・パラメーターが使用された場合、CLI および GUI のマージ・ツールは GB18030 エンコード方式を設定して呼び出されます。
あるいは、サイトに中国語のデータベースだけが含まれている場合には、デフォルトのマージ・コマンドを以下のように変更すると、ascii タイプに encoding_rules 属性を指定する必要がなくなります。
ccm.cli.tools.merge.ascii.windows="%ccm_home¥¥¥¥bin¥¥¥¥util¥¥¥¥cc_merge.bat" "%ccm_home" %{encoding[null='GB18030']} %outfile %file1 %ancestor %file2
ccm merge [[-create_task] | [-t|-task task_spec]]
[-c|-comment comment_string]
[-ce|-commentedit] [-cf|-commentfile file_path]
file_spec1 file_spec2
このオプションは、-commentedit および -commentfile と共に使用できます。-commentedit オプションを使用すると、コメントはデフォルトのテキスト・エディターに表示されます。
このタスクは、マージを実行したユーザーに割り当てられます。タスクのリリース値は、新規オブジェクト・バージョンが作成されたプロジェクトのリリース値に設定されます。オブジェクト・バージョンがプロジェクト外部で作成される場合には、リリース値は設定されません。