Subversion の導入

Subversion メモ
http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/SubversionMemo.html
Subversion によるバージョン管理 3. 同伴ツアー
http://subversion.bluegate.org/doc/ch03.html

~/.subversion/config に書いてある editor-cmd のコメントアウトを外して Emacs を使えるようにする。

editor-cmd = emacs

バージョン情報を保存するための「リポジトリ」を作る。バージョンを管理したいプロジェクトごとにひとつづつ。ここでは、/home/name/repos 以下にプロジェクトのディレクトリ project_repos を作成する。

$ svnadmin create /home/name/repos/project_repos

実際にバージョン管理したいファイル群が入っている project ディレクトリ内には trunk, branches, tags の三つのディレクトリを作って、ファイル群はすべてこの trunk ディレクトリに放り込む。それからリポジトリへ最初のバージョンをインポートする。

$ cd project
$ mkdir trunk
$ mv * trunk
$ mkdir branches tags
$ svn import project file:///home/name/repos/project_repos

ここまでで初期設定が終了。実際の作業をするために「作業コピー」をリポジトリから check out して作る。

$ svn checkout file:///home/name/repos/project_repos/trunk

いじる。作業コピーの状態を見る。

$ svn status
$ svn diff

いじる。ファイルの追加・削除・コピー・移動・ディレクトリ作成はすべて Subversion を介して行う。

$ svn add foo
$ svn delete foo
$ svn copy foo bar
$ svn mkdir doc
$ svn move foo bar

変更したファイル群を新たな「リビジョン」として作業コピーを「コミット」する。

$ svn commit

この後はいじってコミットを繰り返すだけ。必要に応じて過去のリビジョンに戻れる。過去のリビジョンを見る。

$ svn log file:///home/name/repos/project_repos

作業コピーのファイルを最新のリビジョンのものへと戻す。

$ svn revert report.txt

特定のファイルだけ以前のリビジョンに戻す。

$ svn merge -r 4:3 report.txt
U report.txt

過去のリビジョンに戻す。リビジョン番号は増える。

$ svn merge -r 4:3 file:///home/name/repos/project_repos/trunk

あるリビジョンに対してバージョン 0.91 とか名前を付けたい場合はタグをつける。タグはある時点でのプロジェクトの「スナップショット」らしい。まだ使ってないから具体的なコマンドはなし。


参考リンク。
Subversion 入門
http://www.satoshiabe.jp/subversion.html
Subversion によるバージョン管理
http://subversion.bluegate.org/doc/index.html
TortoiseSVN ユーザガイド
http://tortoisesvn.bluegate.org/Help/dailyuseguide.html