Federico-Kereki(2008年6月27日(金))シェア1つの作業をラップトップマシンとデスクトップマシンとを使い分けながら交互に進めていくユーザにとって、双方のマシン間でデータを反映させ合う同期処理は不可欠の業務となるはずである。その種のサポートツールとしてはscpやrsyncなどのコマンドライン系ツールが多数存在しており、グラフィカル系アプリケーションに限ってもKonquerorやKrusaderなどの汎用ツールを使って処理することも、あるいはUnison(翻訳記事)のような専用ツールを利用することもできる。用いたディレクトリ同期の手法である。Komparatorは2つのディレクトリ間で収録ファイルの比較と同期を行うためのツールである。(ローカルフォント)などのプロトコルベースの疑似フォルダを比較対象とすることも可能とされている。同ツールはGPLv2の適用下で公開されており、現状の最新版は2007年10月にリリースされたバージョン0.8である。Komparatorのインストール作業自体に特に難しい点はない。ダウンロードサイトからソースコードの入手をすればいいが、UbuntuおよびSUSEについては専用バージョンも用意されている。Archivingに該当するエントリが追加された。installを用いたインストールを行えばいい。Handbook」が表示されるだけである。海外のユーザにとっては残念なことに、同プログラムは英語版しか用意されていない。Komparatorのメインウィンドウはかなり込み入った印象を受けるが、そのインタフェースとしての構成自身にも一般的ではないデザインが散見される。this”の専用ボタンまでもが用意されているのは、あまり見られない仕様ではなかろうか。Optionsの画面にて、2つのディレクトリを選択して処理対象とするファイルの指定をしなくてはならない。subfolders”ボタン)、隠しファイルも対象に含めるか、ファイルの大文字小文字を区別させるか(Linux/Unixシステムならあって当然の機能)などの指定が行えるようになっている。Komparatorの重複ファイル検出には、バイト単位の比較モードだけでなくファイルのMD5チェックサム計算モードも用意されており、後者のモードを指定した場合はチェックサムの一致するものが同一ファイルと見なされるようになる。同期処理を実行する前には、Settingsタブの設定内容を確認しておかなくてはならない。次に同期対象とする2つのURLを指定するが、この設定画面における“left”URLは上側のボックス、“right”URLは下側に表示されるボックスを指すので注意が必要だ。その後Searchをクリックすると、比較結果として下記の内容が表示されるはずである。filesタブ――複数の存在が検出されたファイル。filesタブ――指定された一方のURL側にのみ存在するファイル。filesタブ――すべてのファイルがカラーコード別で一覧される(ただしカラースキームの詳細は分かりにくい)。左側のファイルとそれに対応する右側のファイルのペアを選択すると、右クリックにより、サイズ、タイプ、所有者などのファイル情報を比較できる。ファイルの内容を直接確認することはできないここでの具体的な同期プロセスは、2つのディレクトリ間に配置された6つのボタンを用いて、操作対象となるファイルのコピー、移動、削除を個別に実行する仕様となっている。everything”のような一括処理ボタンを追加してもらいたいものである。KDiff3KDiff3KDiff3はKomparatorよりも多機能ではあるが、そのすべてが同期処理に関係するわけではない。言うもののKDiff3によるディレクトリ関係の操作としては、最大3つのディレクトリを対象とした同時比較を始め、マージ処理のシミュレーション、同期処理の自動実行、バックアップの作成など、現行のKomparatorでは不可能な各種の処理を実行できるのである。本稿で取り上げている同期処理にとって特に関係が深いのは、特定のファイル群(例えばソースファイルなど)を指定した上で両者の相違点を強調表示させ、何を残すかをユーザが確認してからマージさせるという操作が行える点である。KDiff3のマージ処理は、ごく単純に一方を他方のファイルで上書きさせるだけではない。あるファイルに変更を加えた後、その変更を反映しないまま別のマシンに置かれた当該ファイルのコピーに異なる変更を加えてしまったような場合、通常のマージ処理ではどちらか一方のファイルを残せるだけで、他方の変更部は消去させるしかなかった。ところがKDiff3では、こうした双方の変更部を残すことができるのだ。同プログラムの最新版は2007年4月にリリースされたバージョン0.9.92である。Xにても使用することができる。KDiff3の場合は複数の言語にローカライズされているだけでなく、操作用ドキュメントが充実しているのもKomparatorと対照的な点だ。Handbook」はPDFファイル形態で入手することもできるが、通常はプログラム本体のHelpメニューから呼び出す形で利用することになるだろう。KDiff3の入手については、openSUSEの場合は標準のソフトウェアリポジトリを利用すればいい。Controlのメニュー項目とされるようになっており、プログラマであればこうした措置も気にならないのかもしれないが、その他の一般ユーザの場合はこれをファイルシステム関係のアプリケーションかユーティリティだと思い込んでしまうのではなかろうか)。installを用いた通常のインストール手順を実行すればいい。インストールしたKDiff3本体はデスクトップおよびKonquerorに統合されるので、ここでの比較操作は2つのファイルまたはディレクトリを選択した後、右クリック経由で実行することになる。私のデスクトップマシンの場合、この操作を行うと必ずXセッションがクラッシュしてしまい、再度のログインを余儀なくさせられてしまう。later”を選択し、次に2つ目のファイルを右クリックした段階で実際の比較操作を実行することもできるようになっているのだが、私のデスクトップマシンはこの操作においてもクラッシュしてしまうのだ。それとは対照的に手元のラップトップマシンで動かす限り、KDiff3はトラブルフリーで動作してくれた。KDiff3を起動すると、比較対象とする2つ(または3つ)のディレクトリ指定用のウィンドウが表示される。Mergeタブの設定も確認しておく必要がある。Directoriesオプション、比較および除外対象とするファイル名のパターン、ファイルの比較モード(バイト単位の比較を行うかファイルサイズのみの比較を行うかなど)を指定しておけばいいだろう。Directoriesオプションを選択しておくと(可能であればこのオプションはデフォルトで有効化しておいてもらいたいところである)、必要な比較処理を経た後にディレクトリの同期が実行されるようになる。ここでの比較結果は、3つのコラム(A、B、C)が配置された単一画面にて、各ディレクトリにどのファイルが存在するかが一覧可能な形で表示されるようになっている。画面右上にある表示モードの切り換え用ボタンをクリックすることで、ディレクトリ間に共通するファイルを非表示化させたり(これにより一致しないファイルのみに集中できる)、特定ディレクトリ中にのみ存在するファイルだけに絞り込むといった操作も行える。したファイル間の同期としてどのような処理が可能かは、Operationコラムに表示されるようになっている。区別を示した上で表示される(比較表示に関する設定はDiffviewメニューエントリで行える)。これらをマージさせるか、あるいは特定ファイルの状態に合わせるかは、ユーザの判断に委ねられるが、そうした処理の候補はOperationコラムを右クリックすることで呼び出せるようになっている。行うべき処理を指定し終わったら、Directoryメニューにて最終的な同期の確認をすればいい。まとめ本稿で紹介した2つのプログラムは、いずれも所定の目的を果たすだけの機能を有してはいるが、同時にいくつかの欠点も抱えている。Komparatorの場合、そのインタフェース構成が複雑で把握しにくいだけでなく、自動操作化が進められていないため、ユーザは手作業によるクリックを何度も繰り返さなくてはならない。KDiff3の場合はテキストファイル間の比較機能を重視した作りとなっているが、これもユーザによる各種の中間操作を必要とする。いずれにせよどちらも開発者をメインのユーザに想定しているので、一般のユーザであればKrusaderの同期ツールの方が使いやすいと感じることもあるだろう。それでも利用者をプログラマに限るとすれば、こうした用途ではKDiff3が便利なツールという結果になるのかもしれない。Kerekiはウルグアイ出身のシステムエンジニアで、20年以上に渡るシステム開発、コンサルティング、大学講師の経験を有している。