付録 A. CVSユーザのためのSubversion

目次

リビジョン番号の意味が変わります
ディレクトリのバージョン
切断状態での豊富な操作
状態と更新の区別
ブランチとタグ
メタデータの属性
衝突の解消
バイナリファイルと変換
バージョン管理されたモジュール
認証
CVS から Subversion へのリポジトリ変換

この補遺はSubversionになじみのないCVSユーザへのガイドです。 この章は基本的に、「10キロくらい離れた」二つのシステム間の違い についての一覧です。それぞれの節で、できるだけ関連した章への 参照を用意しました。

Subversionの目標は現在と未来のCVSユーザを乗っ取ることですが、 CVSで「問題」となっている振る舞いを改良するために いくつかの新しい機能と、設計の変更が必要でした。これは CVSユーザとしての、いままでの習慣を断ち切る必要があるかも知れない ことを意味します—それは最初からおかしかったのですから。

リビジョン番号の意味が変わります

CVSでは、リビジョン番号はファイルごとについていました。理由は、CVSはRCS ファイルにデータを格納していたからです。それぞれのファイルは RCSファイルをリポジトリに持ち、そのリポジトリは大雑把に言って、プロジェクト ツリーの構造と一致するようなレイアウトでした。

Subversionでは、リポジトリは一つのファイルシステムのように見えます。 それぞれのコミットはまったく新しいファイルシステムツリーを作ります。 要約して言うと、リポジトリとは、そのようなツリーが一列にたくさん並んだ もののことです。このようなツリーそれぞれは、一つのリビジョン番号でラベル 付けされています。誰かが「リビジョン 54」 と言うとき、彼らは特定 のツリー(そして間接的に、54番目のコミット後のファイルシステムの見え方) について語っています。

技術的には、「foo.cのリビジョン 5」 という言い方は正しくありません。そうではなく、 「リビジョン 5 に出てくるfoo.c」 と言うべきです。同様に、ファイルの変化についての前提に気をつけて ください。CVS では、リビジョン 5 とリビジョン 6 の foo.c は常に異なっていました。Subversionでは リビジョン 5 と 6 では、たいていの場合foo.c は変更されていません

これについての詳細はリビジョン項を見てください。