ぱそくま ろご
linux > Subversion > Subversionとは?

Subversion(サブバージョン)とは?

バージョン管理システム

Subversionの説明の前に、「バージョン管理システム」の説明を。

Excelなどで作成したファイルは自分のパソコンや会社のファイルサーバーに保存すると思います。 その保存したファイルの最終更新者や最終更新日などはファイルのプロパティを見ると分かりますが、厳密に「いつ」、「誰が」、「どの部分を」修正したのかは分かりません。 また、関連性のある他のファイルを同時に修正したとしても(例えば、設計書を修正した場合、それに付帯する見積書や社内稟議書も、一緒に修正すると思います。) 他の人が一緒に直したファイルがどれなのか分かりません。 これらを一元的に管理できるのがバージョン管理システムです。 「いつ」、「誰が」、「どの部分を」修正したのかを管理し、いつでも好きなときに修正前のファイルを取得できます。 プログラマーの方はついついプログラムのソース管理と思いがちな方もいらっしゃると思いますが、社内文章の管理等にも有用ですので、色々と使ってみることをお勧めします。

Subversionとは

Subversionは、ファイル(ディレクトリ)を管理するバージョン管理システムです。 Subversionはリポジトリといわれるツリー形式の変更履歴データを使って、バージョン管理を行っています。 リポジトリは全ての変更点(追加、変更、削除)を管理しているので、変更履歴や古いバージョンの取得、復帰などができます。 オリジナルのページはSubversionです。興味のある方や上司から命令された方はご覧ください。

ちなみに)私はリポジトリを「メタデータ(作成者や修正日などのファイルの付帯データ)を含む差分バックアップを時系列に管理しているデータ」と認識しています。



推奨されるリポジトリの構成

一般的には下記の構成が推奨されています。ただ、これはあくまでも開発者向けですので、社内文章等の管理で使用する場合はこのような構造にする必要はありません。

  • <project-id>
    • /trunk
    • /branches
      • <branche1>
      • <branche2>
      • .
    • /tags
      • <tag1>
      • <tag2>
      • .
各サブディレクトリで管理するもの
サブディレクトリ管理対象
trunk メインとなる開発です。
branches メイン開発から分岐する開発を管理します。
tags もう修正されないbranchesを管理します。

Subversionの構成

Subversionは複数の部品(アプリケーション)で構成されています。それらは以下の通りです。

Subversionを構成している部品
アプリケーション使用端末概要
svn 主にクライアント コミット(ファイルの修正済みを申請)やアップデート(サーバーからファイルを取得)など、ローカルファイルの管理、サーバーへのリクエストを行います。
svnversion クライアント 作業コピーのローカルリビジョンに関して表示します。
svnlook サーバー サーバー上でリポジトリーに関する情報を表示します。
svnadmin サーバー svnリポジトリを管理(監視、修復等)するためのサーバー側の管理ツール(コマンド)です。
svndumpfilter サーバー Subversion のダンプファイルから履歴を削除します。
svnserve サーバー スタンドアロンのSVNサーバプログラムです。これを使うとリモートアクセスが可能になります。アクセスする場合はsvnプロトコルを使用します。
mod_dav_svn サーバー(Apatch) Apatch用のモジュールです。SVNサーバーをsvnserveではなくApatchで動作させる為にあります。 使用方法などはapache httpdを使ったsvnサーバーの立て方をご覧ください。