本文へ移動

Apache Subversion(SVN):集中型バージョン管理システム

Apache Subversion(SVN)は、ファイルやディレクトリの変更を追跡する集中型バージョン管理システムです。アトミックコミット、コピーによるブランチ作成、一般的な開発ワークフローをサポートします。

概要

Apache Subversionは、一般にSubversionまたはSVNと呼ばれる、ファイルおよびディレクトリの集合に対する変更を記録・管理する集中型バージョン管理システムです。共同でのソフトウェア開発や、信頼できる改訂履歴を必要とするその他のプロジェクト向けに設計されています。SVNはサーバー上に単一の正規リポジトリを保存し、利用者はローカルの作業コピーを作成して更新し、変更をリポジトリへコミットできます。

主な特徴

Subversionは、予測可能でリポジトリを中心とするワークフローと、旧来のシステムとの差異となる複数の機能を重視しています。代表的な機能には、アトミックコミット(コミットが完全に成功するか、失敗するかのいずれかであること)、バージョン管理されるディレクトリ操作、プロパティによるメタデータのサポート、リポジトリ側のコピーとして実装される低コストなブランチおよびタグがあります。

  • 集中型リポジトリ:ネットワークプロトコルを通じてアクセスできる、単一の信頼できる情報源です。
  • 作業コピーモデル:リポジトリの内容を反映し、ローカルでの編集を記録するローカルディレクトリです。
  • アトミック性と履歴:一貫したリビジョン番号とアトミックな更新により、履歴の信頼性が保たれます。
  • アクセス方式:リポジトリには、Apacheモジュールを使用するHTTP(S)インターフェース、またはネイティブのsvnプロトコルを介してアクセスできます。

代表的なコマンドとワークフロー

開発者は通常、少数のクライアントコマンドを用いて共同作業を行います。checkoutで作業コピーを取得し、updateでリポジトリと同期し、commitでローカルの変更を送信します。ブランチとタグは低コストなリポジトリコピーによって作成されることが多く、マージは分岐した開発系統を統合します。

  1. checkout — 作業コピーを取得する
  2. update — リポジトリから変更を取り込む
  3. commit — ローカルの変更をリポジトリへ送信する
  4. merge、リポジトリコピーによるbranch/tag、revert、status、log、diff

歴史とエコシステム

Subversionは、以前の集中型システムに見られた制約を置き換えるために作られ、その堅牢性と親しみやすいモデルにより多くの組織で採用されました。時を経て、複数のクライアント実装やIDE・ビルドシステムとの統合を備える、より広いオープンソースのエコシステムの一部となっています。一般的なクライアントには、コマンドラインツールのほか、デスクトップ環境と統合するグラフィカルシェルがあります。

用途、比較、特筆すべき事項

SVNは、単一リポジトリに対する中央管理、明確な管理上の監督、または単純な直線的ワークフローを必要とする環境に適しています。各開発者が完全なリポジトリ複製を持つシステムなどの分散型システムとは対照的に、中央サーバーに依存します。一部のチームは、大規模でモノリシックなコードベース、文書管理、またはリポジトリへのアクセス制御が重要なプロジェクトにおいて、現在もSVNを選択しています。

参考情報

公式情報、クライアントのダウンロード、詳細な文書については、プロジェクトのホームページ、ドキュメントとガイド、一般的なクライアントツールと統合機能のページを参照してください。これらの情報源では、管理者およびコントリビューター向けのインストール手順、プロトコルの説明、ベストプラクティスのワークフローを提供しています。

関連項目

著者

AlegsaOnline.com Apache Subversion(SVN):集中型バージョン管理システム

URL: https://ja.alegsaonline.com/art/4844

共有