Solution ID:151174911 Type: External 表題: WINDOWS/UNIX: バージョン間の差分管理のしくみ 製品:ClearCase バージョン: OS: WINDOWS/UNIX DEFECT #: N/A PATCH #: N/A 参照事項: 作成年月日: 03-Sep-2002 改訂年月日: N/A 質問: ClearCaseはエレメントのバージョン間の差分をどのようにして 管理しているのか教えてください。 回答: まず、ClearCaseには大まかに(詳細は後述します) A)バージョンごとの差分を保持し、 (Notepad等での)ファイル参照時には、 前バージョンファイルの内容に差分を施して 対象バージョンのファイルを再構築する。 B)バージョンごとにすべてのファイルの内容そのものを保持する。 の2つの管理方法があります。 これら管理方法が、拡張子等のファイルの特徴(ファイルタイプ)ごとに 割り当てられています。 例えば、"ClearCaseのデフォルト設定"(詳細は後述いたします)においては、 テキスト形式ファイルには上述のA)の管理方法が、 バイナリ形式ファイルには上述のB)の管理方法が、 それぞれ割り当てられています。 差分を見るA)の管理方法を使用するテキストファイルは 中味をみてチェックアウト時とチェックイン時で同等の場合には その旨を警告するウィンドーが表示されるわけです。 実は、バイナリファイルでも差分を保持する管理方法が あります(詳細は後述いたします)。 その管理方法が割り当てられている場合には、 バイナリファイルであってもチェックアウト時とチェックイン時 で中味の比較が行われます。 # #以下、詳細について記述します。 # 1)定義済みのエレメントファイルタイプ ClearCaseにはデフォルトで以下のエレメントタイプが定義されています。 また、各タイプには2)で述べるどのタイプマネージャで操作するかが定義されています。 いくつか抜粋すると、以下のようなタイプがあります。 エレメントタイプ : 対応するタイプマネージャ file : whole_copy compressed_file : z_whole_copy text_file : text_file_delta binary_delta_file : binary_delta 2)タイプマネージャ タイプマネージャは1)で紹介したエレメントタイプを持つファイルを 操作するプログラムです。 いくつか抜粋しますと、以下のようなタイプマネージャがあります。 whole_copy : 任意ファイルの全体を保持します。 z_whole_copy : 任意ファイルを圧縮して全体を保持します。 text_file_delta : テキストファイルの差分を保持します。 binary_delta : バイナリファイルの差分を保持します。 3)ファイルタイプ管理規則の定義 ClearCaseではmagicファイルと呼ばれるファイル(拡張子.magic) により全てのファイルタイプが定義されております。 これら定義は変更が可能です。 デフォルト設定時のmagicファイルは、 [ClearCaseインストールディレクトリ]/config/magic/default.magic です。 例えば、 txt document text_file : -printable & -name "*.[tT][xX][tT]" ; の行では、拡張子.txt(大文字小文字の区別無し)のファイルは text_fileとして管理するように定義されております。 従って、1),2)で述べました説明から(text_file -> text_file_delta)、 差分を使用した管理となります。 また、 program compressed_file : -name "*.[eE][xX][eE]" | -name "*.bin" ; の行では、拡張子.exe(大文字小文字の区別無し)や.bin のファイルは compressed_fileとして管理するように定義されております。 従って、1) 2)で述べました説明から(compressed_file -> z_whole_copy)、 ファイル全体を使用した管理となります。 従って、この行を program binary_delta_file : -name "*.[eE][xX][eE]" | -name "*.bin" ; と変更すると、 1) 2)で述べました説明から(binary_delta_file -> binary_delta)、 差分を使用した管理となり、 バイナリファイルであっても中味を比較するようになります。 ご不明な点等ありましたら、ラショナルカスタマサービスへお問い合わせ下さい。