Svn-basic-concepts

提供:Dev Guides
移動先:案内検索

SVN-基本概念

バージョン管理システムとは何ですか?

バージョン管理システム(VCS)は、ソフトウェア開発者が協力して作業の完全な履歴を維持するのに役立つソフトウェアです。

以下はバージョン管理システムの目標です

  • 開発者が同時に作業できるようにします。
  • 互いの変更を上書きしないでください。
  • すべてのすべてのバージョンの履歴を維持します。
  • VCSは2つのカテゴリに分かれています。*
  • 集中型バージョン管理システム(CVCS)、および
  • 分散/分散バージョン管理システム(DVCS)。

このチュートリアルでは、集中型バージョン管理システム、特に Subversion のみに集中します。 Subversionは中央集中型バージョン管理システムに該当します。つまり、中央サーバーを使用してすべてのファイルを保存し、チームのコラボレーションを可能にします。

バージョン管理の用語

このチュートリアルで使用する用語のいくつかについて説明することから始めましょう。

  • *リポジトリ:*リポジトリは、バージョン管理システムの中核です。 開発者がすべての作業を保存する中心的な場所です。 リポジトリには、ファイルだけでなく履歴も保存されます。 リポジトリはネットワーク経由でアクセスされ、サーバーとして機能し、クライアントとして機能するバージョン管理ツールです。 クライアントはリポジトリに接続でき、リポジトリへ/から変更を保存/取得できます。 クライアントは、変更を保存することで、これらの変更を他の人が利用できるようにし、変更を取得することで、他の人の変更を作業コピーとして取得します。
  • *トランク:*トランクは、すべての主要な開発が行われるディレクトリであり、通常、プロジェクトで作業するために開発者によってチェックアウトされます。
  • タグ:タグディレクトリは、プロジェクトの名前付きスナップショットを保存するために使用されます。 タグ操作により、リポジトリ内の特定のバージョンに説明的で覚えやすい名前を付けることができます。 +たとえば、LAST_STABLE_CODE_BEFORE_EMAIL_SUPPORTは、リポジトリUUID:7ceef8cb-3799-40dd-a067-c216ec2e5247および+リビジョン:13よりも記憶に残ります。
  • *分岐:*分岐操作は、別の開発ラインを作成するために使用されます。 開発プロセスを2つの異なる方向に分岐させる場合に役立ちます。 たとえば、バージョン5.0をリリースするときに、6.0機能の開発を5.0バグ修正とは別に維持できるように、ブランチを作成することができます。
  • *作業コピー:*作業コピーはリポジトリのスナップショットです。 リポジトリはすべてのチームで共有されますが、人々はそれを直接変更しません。 代わりに、各開発者は作業コピーをチェックアウトします。 作業コピーは、開発者が他のチームから隔離されたまま作業を行うことができるプライベートな職場です。
  • *変更のコミット:*コミットは、プライベートな職場から中央サーバーへの変更を保存するプロセスです。 コミット後、すべてのチームが変更を利用できるようになります。 他の開発者は、作業コピーを更新することでこれらの変更を取得できます。 コミットはアトミック操作です。 コミット全体が成功するか、ロールバックされます。 ユーザーは、コミットの半分が完了したことを確認しません。