CVS、Subversion、VSS等、世の中にはバージョン管理ソフト (システム?) と呼ばれるソフトが数多くあります。プログラムソースの変更履歴を容易に管理可能なため、一度使うと手放せなくなってしまいます。
通常は既に準備されている環境を使用することが多いため自分自身で立ち上げる機会は少ないですが、せっかくですので centos_x86_64 (CentOS 5.5 64bit環境) に Subversion をインストールしてみます。
Subversion は4つのプロトコルに対応しています。
・file (ローカルファイルへのアクセス)
・svn (Subversion 独自プロトコル)
・svn+ssh (svn プロトコルを ssh で暗号化)
・http/https (Apache を使用)
オープンソースプロジェクトでは http/https を使用することが多いように思えますが、今のところ Apacheのインストールは考えていないこととノートPCからも使用する (かもしれない) ことから、svn+ssh による環境構築を行います。
また、リポジトリ (ソースの格納場所) はプロジェクト毎に作成することとします。
1. Subversion のインストール
CentOS のインストール時に Subversion もインストール済みの場合、この項は飛ばしていただいて結構です。
もしインストール時の記憶があいまいでしたら rpm コマンドでインストール有無を確認可能です。
# rpm -qa subversion
subversion-1.4.2-4.el5_3.1
rpm コマンドの結果が何も復帰しない場合は、yum コマンドでインストールを行います。
(*)「yum install subversion」とした場合、32bit版もインストールされるので注意が必要です。
2. リポジトリの作成
Subversion のインストール完了後、リポジトリ (ソースの格納場所) の作成を行います。
最初にリポジトリ用ディレクトリを作成し、それを Subversion に登録する手順となります。
リポジトリの格納先は /var/svn/repos/hello (/var/svn/repos の hello プロジェクト) とします。
# svnadmin create /var/svn/repos/hello
svnadmin コマンドを実行すると Subversion 用のディレクトリ/ファイル群が hello 配下に作成されます。
README.txt conf dav db format hooks locks
(*) 青字はディレクトリです。
3. アクセス権の設定
hello リポジトリは root で作成したため、このままでは他のユーザから更新ができません。
この問題を回避するために、リポジトリアクセス用のグループ「svn」を作成し、リポジトリ利用者には svn グループに所属してもらうことにします。
# usermod -G svn [ユーザID]
また、/var/svn 以下の所有グループの変更と write 権限の付与を行います。
# chmod -R g+w /var/svn
4. リポジトリの構築 (import)
一般的に Subversion のプロジェクト構成は以下とした方がよいと言われています。
PROJECT
+ trunk (メイン)
+ branches (ブランチ用)
+ tags (タグ用)
従わない理由はありませんので、上記構成で構築 (import) を行います。
最初に import 元となる WORK ディレクトリを作成します。
場所はどこでも構いません。(この例では ~/ 配下に作成しています)
$ mkdir ~/svn_test/trunk
$ mkdir ~/svn_test/branches
$ mkdir ~/svn_test/tags
作成した WORK ディレクトリを svn コマンドを使用して import します。
$ svn import svn+ssh://localhost/var/svn/repos/hello/ -m "first import"
svn コマンドは
「svn+ssh」プロトコルを使用して
「localhost」サーバの
「/var/svn/repos/hello」プロジェクトに
「first import」というコメントをつけて
「import」を行う
という意味になります。
「-m」オプションはコメントを意味します。
(*) ファイルの追加や更新方法は、「Subversionの使いかた」を参照してください。