マニュアル

第2章. 基本的なバージョン管理の概念

目次

リポジトリ
バージョン管理モデル
ファイル共有の問題
ロック-修正-アンロック方式
コピー-修正-マージ方式
Subversionは何をするのか?
Subversionの動作
作業コピー
リポジトリURL
リビジョン
作業コピーがリポジトリを追跡する方法
まとめ

この章は、Subversionの書籍の同じ章をわずかに修正したものです。Subversionの書籍のオンライン版はこちらで入手できます: https://svnbook.red-bean.com/

この章は、Subversionへの手短で簡単な紹介です。バージョン管理が初めての方には、この章は間違いなく役立ちます。まず、一般的なバージョン管理の概念について説明し、Subversionの背後にある具体的なアイデアに進み、Subversionの使用例をいくつか示します。

この章の例では、プログラムのソースコードのコレクションを共有する人々を示していますが、Subversionはあらゆる種類のファイルコレクションを管理できることを覚えておいてください - コンピュータープログラマーを支援することに限定されません。

リポジトリ

Subversionは、情報を共有するための中央集権型システムです。その中心となるのはリポジトリであり、これはデータの中央ストレージです。リポジトリは、ファイルシステムツリーの形式で情報を格納します - ファイルとディレクトリの典型的な階層です。任意の数のクライアントがリポジトリに接続し、これらのファイルに対して読み取りまたは書き込みを行います。データを書き込むことで、クライアントは他のユーザーが情報を利用できるようにします。データを読み取ることで、クライアントは他のユーザーから情報を受け取ります。

図2.1. 典型的なクライアント/サーバーシステム

A Typical Client/Server System

では、なぜこれが興味深いのでしょうか?ここまでは、典型的なファイルサーバーの定義のように聞こえます。実際、リポジトリは一種のファイルサーバーですが、通常のものとは異なります。Subversionリポジトリを特別なものにしているのは、書き込まれたすべての変更を記憶していることです。すべてのファイルへのすべての変更、さらにはファイルの追加、削除、再配置など、ディレクトリツリー自体の変更も記憶しています。

クライアントがリポジトリからデータを読み取るとき、通常はファイルシステムツリーの最新バージョンのみが表示されます。しかし、クライアントはファイルシステムの以前の状態を表示することもできます。たとえば、クライアントは、 先週の水曜日にこのディレクトリには何が含まれていましたか? や、 最後にこのファイルを変更した人は誰で、どのような変更を加えましたか? のような過去の質問をすることができます。これらは、バージョン管理システムの中心にある質問の種類です。バージョン管理システムとは、時間の経過に伴うデータの変更を記録および追跡するように設計されたシステムです。

TortoiseSVNホームページ