これらは Subversion の重要な概念であり、最初から明確にする必要があります。Subversion を使用した公式のバージョン管理ブックには、バージョン管理の基本の章があり、簡単な概要が説明されていますが、ここでは自分の言葉で説明します。
主なコンセプト
リポジトリ
すべての重要なデータ (ファイルやバージョン履歴を含む) が保存される中央データベースです。
MySQL データ ファイルを編集しないのと同様に、リポジトリ ファイルを直接操作することはありません。より具体的には、そこにソース コードをコピーしません。代わりに、Subversion クライアントを使用して特定の Subversion を実行します。このため、ファイル システム パスでリポジトリを参照することはありません。代わりに、URI を使用します。
file:///C:/Data/Subversion/foo
svn://svn.example.com/foo
http://svn.example.com/foo
https://svn.example.com/foo
URI プレフィックスは、構成したツールによって異なります。
Subversion は集中型のバージョン管理システムであるため、特定のプロジェクトのリポジトリは 1 つだけです。
ワーキングコピー
これは、ファイルを表示して操作できるローカル ディレクトリ ツリーです。
バージョン管理を使用する前と同じ方法で作業コピー ファイルを操作します。エディター/IDE を起動し、変更を加え、コンパイル/実行します。唯一の違いは、ファイルがリポジトリ内の特定のリビジョンにリンクされていることです。そのため、いくつかの追加手順を実行する必要があります。
適切なリポジトリにリンクされるように、作業コピーを一度作成する必要があります。それはチェックアウトと呼ばれます。
変更をリポジトリに送信して、変更が共通の履歴に保存され、他のユーザーが利用できるようにする必要があります。これはcommitと呼ばれます。
他の同僚が行った変更を取得したい場合があります。これはupdateと呼ばれます。
作業コピーは、ファイル システム パスで参照します。
同じ場所を指していても、必要な数の作業コピーを持つことができます。
その他の概念
トランク
これは、コードのコピーを含むサブディレクトリであり、メインの開発ラインを表すと判断しました。例えば:
これは単なる慣習です (ディレクトリは Subversion にとって特別なものではありません) が、推奨され、広く使用されています。
ブランチ
これは、コードのコピーを含むサブディレクトリであり、コードのフォーク (未完了のタスク、カスタマイズ、まだ維持しているレガシー バージョンなど) を表していると判断しました。例えば:
これは単なる慣習です (ディレクトリは Subversion にとって特別なものではありません) が、推奨され、広く使用されています。
鬼ごっこ
これは、コードのコピーを含むサブディレクトリであり、特定のリリースを表すと判断しました。あなたはそれに書くことはありません。例えば:
これは単なる慣習です (ディレクトリは Subversion にとって特別なものではありません) が、推奨され、広く使用されています。
財産
Subversion では、リビジョン、ファイル、フォルダーに関する追加情報を保存できます。各データはプロパティです。その情報は Subversion に固有のものであり、外部には存在しないため、それらを読み書きするには特定のツールが必要です。
計画
これはSubversion 用語ではありません。これは、現在行っている特定の作業に関連するすべてのものを参照する一般的な方法です。