Subversionクイックスタート
使い方を知りたいのであればSubversion によるバージョン管理を読めばいいのだけど、やたら文章が長いのが嫌なのと、他の人に概要を説明するときに便利なように、クイックスタートのところを自己流でまとめてみた。動作確認はCentOS5.2上で行っています。
レポジトリの作成
まずは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 によるバージョン管理を読むか、書籍を購入することをお薦めする。