一分一秒真剣勝負!

Ruby, Railsなど。Web系の技術ネタを充実させたい・・が、そうなるかは分からない。

Subversionクイックスタート

 使い方を知りたいのであればSubversion によるバージョン管理を読めばいいのだけど、やたら文章が長いのが嫌なのと、他の人に概要を説明するときに便利なように、クイックスタートのところを自己流でまとめてみた。動作確認はCentOS5.2上で行っています。

Subversionのインストール

 常に最新版が欲しいわけではないので、yumでインストール。apt-getな人はそれでもおk。

# yum -y install subversion

レポジトリの作成

 まずはsubversionが管理する「レポジトリ」を作成する必要がある。場所はどこでもいいのだが、/srv/svnディレクトリを作成。このディレクトリ配下にsvnレポジトリを作成する。

# mkdir /srv/svn

 svnリポジトリの作成。この配下にプロジェクト単位で登録していくか、プロジェクト1つにつきリポジトリも作成するかは趣味の問題。一般的には「リポジトリ-プロジェクト=1:n」の関係で管理する人が多い。

# svnadmin create /srv/svn/repos

プロジェクトの登録

 バージョン管理の対象になるファイルとして、railsアプリのひな形を作成する。別にrailsappディレクトリだけ作っても問題がないのだが、以下のようなディレクトリ構成で作っておくと後々便利に使える。

ディレクトリ 説明
railsapp/branches 何もない。後々あると便利かも?
railsapp/tags 何もない。後々あると便利かも?
railsapp/trunk 本来管理したいソースコード
$ rails trunk
$ mkdir -p railsapp/tags
$ mkdir -p railsapp/branches
$ mv trunk railsapp/

 railsappをsubversionにインポート。file:///srv/svn/reposでもインポートできるが、レポジトリ直下に登録されてしまう為、複数のプロジェクトを管理したい人はfile:///srv/svn/repos/railsappのように、ディレクトリ名を指定しておくこと。また、-mオプションでコメントを付加できる。

# svn import ./railsapp file:///srv/svn/repos/railsapp -m "初期インポート"
追加しています              railsapp/trunk
追加しています              railsapp/trunk/test

〜〜〜

リビジョン 1 をコミットしました。

チェックアウト

 これで元ファイルは削除してもおk。本来開発に必要なファイルはrailsapp/trunkなので、今後はtrunkを指定してチェックアウトすること。チェックアウト先のディレクトリ名はなんでもかまわないのだが、今回の場合railsappで統一しておいた方が分かりやすいだろう。チェックアウトしたディレクトリは「作業コピー」と呼ぶ。

[yatmsu@develop svn]$ svn co file:///srv/svn/repos/railsapp/trunk railsapp
A    railsapp/test/unit
A    railsapp/test/test_helper.rb

〜〜〜

リビジョン 1 をチェックアウトしました。

よく使うコマンド

 殆どの人がよく使うであろうコマンド。

コマンド 説明
svn help svnはヘルプが分かりやすいので、困ったらhelpを見れば十分
svn diff 作業コピーとリポジトリのファイルの差分を表示
svn commit 作業コピーをリポジトリに登録
svn update リポジトリの最新ファイルを作業コピーに取得
svn status 作業コピーの変更内容を表示
svn revert 作業コピーの内容を強制的にリポジトリ上の最新ファイルで置換する

最後に

 これだけ知っていればとりあえず使えるが、これ以上詳しく知りたければ、Subversion によるバージョン管理を読むか、書籍を購入することをお薦めする。