Apache Subversionはユーザーが急激に増えているドキュメントやソースコードのバージョン管理のためのオープンソースのソフトウェアです。
しかし、ある程度慣れないと使い方が難しいとも言われています。
特徴的なのは「チェックアウト」と「チェックイン」によるファイルの更新と、「エクスポート」の役割です。
この記事では、SVNの「チェックアウト」と「エクスポート」の違いを分かりやすく説明していきます。
「チェックアウト」とは?
「チェックアウト」とは、Subversion(SVN)で最も頻繁に使用されるコマンドで、これによってローカル側にサーバーのリポジトリの作業用のコピーが作成されます。
ユーザーはこのコピーされたファイルを使用して変更作業を行なった後で、「チェックイン=コミット」コマンドで、変更部分をリポジトリに反映させることで一連の作業を終了します。
「エクスポート」とは?
「エクスポート」とは、SVNのコマンドの一つで、リポジトリのディレクトリやファイル構造をそのままの形でローカルにコピーする目的で使用されます。
主に、リポジトリのアーカイブやバックアップとして使用されます。
逆に言えば、「エクスポート」コマンドで作成したコピーは、通常リポジトリに戻すことはありません。
リポジトリが何らかの理由で壊れてしまったり管理系の情報の整合性が取れなくなってしまい、初期化したいような場合に使われます。
そう言った意味ではある程度定期的に「エクスポート」しておく必要があります。
「チェックアウト」と「エクスポート」の違い
SVNの「チェックアウト」と「エクスポート」の違いを、分かりやすく解説します。
この2つのコマンドはリポジトリからローカルにファイルをコピーすると言う意味では同じなのですが、根本的な目的が違います。
「チェックアウト」はローカル環境に作業用のコピーを作るのが目的です。
つまり、作業が終わったら「チェックイン=コミット」コマンドでリポジトリに変更を反映させることが前提です。
それに対して「エクスポート」の目的は主にアーカイブ、つまりファイルやディレクトリの状態をそのままの形で保存しておくことなです。
バックアップとして残しておいて、万が一リポジトリが破壊されてしまったような場合に、エクスポートしたものからファイルやディレクトリを再作成して、そこから改めてバージョン管理を始められます。
そのため、「チェックアウト」では管理系のファイルが含まれる. svnディレクトリもコピーされますが、「エクスポート」ではコピーされません。
「チェックアウト」の例文
「チェックアウト」の例文は以下のようになります。
・『SVNでチェックアウトしたファイルはローカルで変更可能です』
・『SVNのチェックアウトのコマンドは元々CVSのコマンドでした』
「エクスポート」の例文
「エクスポート」の例文は以下のようになります。
・『SVNでエクスポートしたディレクトリとファイルは、リポジトリのままの状態になっています』
・『SVNでエクスポートする時にはリビジョンを指定することもできます』
まとめ
この記事では、SVNの「チェックアウト」と「エクスポート」の違いを、解説してきました。
Subversionは優れたソフトウェアですが、有効活用できるかどうかはユーザーの使い方に依存します。
使い方を間違える思っても見ないような結果を招いてしまうこともあります。
まずは、基本となる「チェックアウト」と「チェックイン=コミット」によってファイルの変更を反映させるところから始めるのが良いでしょう。