wiki Wiki | contuct me Contuct me |

Menu

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

目次

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

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

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

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

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

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

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

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