リポジトリの作成
$
svnadmin create /var/svn/smtmpl
標準的なリポジトリ構成
リポジトリ
+ trunk (メイン) メインのソースディレクトリなど
+ branches (ブランチ用) ブランチのソースディレクトリなど
+ tags (タグ用) リリースした時点でのtrunkディレクトリのコピー
リポジトリの構築
$
svn mkdir svn+ssh://svn@tower.rally.or.jp/var/svn/mttmpl/trunk -m "trunkの作成"
$
svn mkdir svn+ssh://svn@tower.rally.or.jp/var/svn/mttmpl/tags -m "tagsの作成"
$
svn mkdir svn+ssh://svn@tower.rally.or.jp/var/svn/mttmpl/branches -m "branchesの作成"
-mオプションで、ログメッセージを指定することができる。指定しない場合は環境変数SVN_EDITORで指定したエディタが立ち上がる。
リポジトリへの登録(インポート)
メインブランチのtrunkにソースをインポートする。
$
svn import src svn+ssh://tower.rally.or.jp/var/svn/mttmpl/trunk -m "srcをimport"
なお、Subversion 1.6(CentOS 5.6)では、db/rep-cache.dbにグループの書き込み権がないので、最初にインポートしたユーザーと異なるユーザーでは書込できない。最初のインポート時に以下のコマンドで書き込み許可をしておく。
$
chmod g+w /var/svn/smtmpl/db/rep-cache.db
リポジトリへの追加
$
svn add src/index.html svn+ssh://tower.rally.or.jp/var/svn/mttmpl/trunk -m "index.htmlを追加"
リポジトリからのチェックアウト
$
svn ccheckout(co) svn+ssh://tower.rally.or.jp/var/svn/mttmpl/trunk dir
dirにより展開するディレクトリ名を指定できる。指定しなければURLの最終部分に展開される。
タグ付け
リリースする場合は、タグ付けを行う。
$
svn copy svn+ssh://nor@tower.rally.or.jp/var/svn/mttmpl/trunk svn+ssh://nor@tower.rally.or.jp/var/svn/mttmpl/tags/smtmpl-0.1.2 -m "mttmpl-0.1.2としてリリース"
これで、smtmpl 1.0.2のタグが作成される。
なお、copyは実際には物理的にファイルをコピーするわけではない。
また、ブランチを作成するにも対象がbranches/になるだけで、copyで行う。
差分確認
ワーキングファイルの修正点の確認。
$
svn diff
情報確認
ワーキングファイルがどのリポジトリからチェックアウトしたかなどの情報確認。
$
svn info
アップデート
リポジトリ上でされている更新の適用。
$
svn update
状態確認
更新状態のチェック。
$
svn status
-u -vオプションで最後に更新されているのがどのリビジョンかを見ることができる。
$
svn status -u -v
コミット
$
svn commit -m "styles.cssを修正" file
-mオプションで、ログメッセージを指定することができる。指定しない場合は、エディタが立ち上がる。
ログをみる
$
svn log filename
バージョンを選んで取り出す。
$
svn cat -r6 filename
$
svn update -r6 filename
マージする
リビジョンを変更する場合。
$
svn merge -r 7:6 filename
リビジョン7から6に戻す。
branchesからtrunkへマージする場合。
$
svn merge -r 18:HEAD file:///path/to/svnrepos/branches/hello-1.1
ワーキングファイルの修正を取り消す
$
svn revert filename
ファイルを追加する
$
svn add file2
リポジトリに反映させるためにはコミットが必要。
ディレクトリを追加する
$
svn mkdir doc
リポジトリに反映させるためにはコミットが必要。
ファイルを削除する
$
svn delete file2
ディレクトリも削除できる
リポジトリに反映させるためにはコミットが必要。
ファイルを移動する
$
svn move file2 file3
ディレクトリも移動できる
リポジトリに反映させるためにはコミットが必要。
ある時点でのスナップショットを引き出す
$
svn update -r7
最新にするには、「svn update」を行う。
キーワード置換
$Id$などのキーワード置換を行うにはsvn:keywordsプロパティを設定する。
プロパティを設定するには、
$
svn proset svn:keywords Id filename
プロパティの設定を見るには、
$
svn proplist -v filename
参考URL