リポジトリの作成〜日常行う作業についてのメモ。
# svnadmin create /home/SV/TestRepos (/home/SVディレクトリはあらかじめ作成しておくこと)
# ls /home/SV/TestRepos/ README.txt conf dav db format hooks locks
作成したリポジトリにプロジェクトを登録する。svn importコマンドを実行するとエディタが起動するので、メッセージを入力して、エディタを終了するとプロジェクトがリポジトリに登録される。
以下の例ではSampleProgramディレクトリの中身をTestReposリポジトリ中のSampleProgramディレクトリの下にインポートしている。
# svn import SampleProgram file:///home/SV/TestRepos/SampleProgram 追加しています SampleProgram/main.c
# svn list file:///home/SV/TestRepos SampleProgram/
# svn checkout file:///home/SV/TestRepos/SampleProgram A SampleProgram/main.c リビジョン 1 をチェックアウトしました。
1つのリポジトリに複数プロジェクトを格納
Repos/ リポジトリ(svnadminで作成) +---SampleProg プロジェクト格納用ディレクトリ +---SampleProg2 プロジェクト格納用ディレクトリ
SampleProg/ リポジトリ(svnadminで作成) SampleProg2/ リポジトリ(svnadminで作成)
CVSではRevision番号はファイル毎に振られていたが、SubversionではRevision番号はリポジトリに対して1つ振られる。このため、1つのリポジトリに複数のプロジェクトを入れていた場合、あるプロジェクトのソースを変更してもリポジトリとしてはRev番号が上がってしまい関係ないプロジェクトについても変更があったように見えてしまう。
1リポジトリ内に複数プロジェクトを入れるのと1つしか入れないのとどちらがよいかは、一概には言えないが全く関係ないプロジェクト同士であればリポジトリは分けた方が無難と思われる。
SampleProg/ プロジェクトTop +------trunk/ 本流のソースを格納 +------tags/ タグを格納する為のディレクトリ | +--beta_release/ 作成したタグ | : +------branches/ ブランチを格納する為のディレクトリ +--develop/ 作成したブランチ :
# find SampleProg SampleProg <== importするプロジェクトのTopディレクトリ SampleProg/trunk SampleProg/trunk/main.c <== trunk/ 配下にソースをいれておく SampleProg/tags SampleProg/branches # svn import SampleProg file:///home/SV/TestRepos/SampleProg 追加しています SampleProg/trunk 追加しています SampleProg/trunk/main.c 追加しています SampleProg/branches 追加しています SampleProg/tags リビジョン 2 をコミットしました。
# svn checkout file:///home/SV/TestRepos/SampleProg A SampleProg/trunk A SampleProg/trunk/main.c A SampleProg/branches A SampleProg/tags リビジョン 2 をチェックアウトしました。
# svn checkout file:///home/SV/TestRepos/SampleProg/trunk SampleProg A SampleProg/main.c リビジョン 2 をチェックアウトしました。
# svn info パス: . URL: file:///home/SV/SampleProg/trunk リポジトリ UUID: f55960ad-6812-0410-ba75-d64ba92e87fb リビジョン: 1 ノード種別: ディレクトリ 準備中の処理: 特になし 最終変更者: tomita 最終変更リビジョン: 1 最終変更日時: 2006-04-27 21:27:24 +0900 (木, 27 4月 2006)
#svn commit カレントディレクトリ以下の編集ファイルをcommit #svn commit main.c debug.c
# svn log main.c
# svn log
# svn log file:///home/SV/TestRepos/SampleProg/branches/beta_release
# svn log file:///home/SV/TestRepos/SampleProg プロジェクトのトップディレクトリを指定する。