いままで常に個人プログラミングだったので,バージョン管理をしたことがなかった.
ので,あまりにも基本だが,Subversionでのバージョン管理の手法を調査してみた.
- trunk, branches, tagsについて
開発の段階に合わせてtrunk, branches, tagsというディレクトリを作成して管理する.
trunk: 最新のコード
branch: リリース用のコード 1.0.xとかの名称を付けて管理する
tag: 本番リリースのコード.branchが安定した時点で1.0.1とかして作成する.
- subversionへの登録方法
http://svn.hoge.com/svn/repo/というリポジトリでapp/ディレクトリにあるコードを管理しようとする場合,
1. trunkに現在のコードをimportする
$ svn import http://svn.hoge.com/svn/repo/app/trunk -m 'initial import'
2. 登録したコードをworking/ディレクトリに取り出す
$ svn checkout http://svn.hoge.com/svn/repo/app/trunk working
3. branchを作成する
ある程度コードが安定してきたら,リリース用のブランチを作る
$ svn mkdir http://svn.hoge.com/repo/app/branches/ $ svn copy http://svn.hoge.com/repo/app/trunk \ http://svn.hoge.com/repo/app/branches/1.0.x -m 'create a branches 1.0.x of app'
リリース時はtag/1.0.0といったディレクトリを作る.作り方はbranchと同様
4. 作業コピーをブランチに切り替える
$ svn switch http://svn.hoge.com/repo/app/branches/1.0.x
5. gonzuiにtrunkを登録する
gonzuiはrubyベースのコード検索エンジン.appのtrunkを,gonzuiに登録して検索可能にする
./gonzui-import --svn http://svn.hoge.com/repo/app/trunk app