目次
この補遺は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
は変更されていません 。
これについての詳細はリビジョン項を見てください。