よく使うSubversionコマンドの一覧。
仕事でしか使わなくて忘れてしまう。
$ svn add * --force
svn st | grep '^!' | awk '{ print $2 }' | xargs svn delete
一般的にtrunk
は主系であり、作成したブランチはbranches
へ置く。
通常URLでの指定が必要になる場合があるが、^/
で置き換える事ができる。
# ブランチを作成する
$ svn copy ^trunk/ ^branches/work_branch -m "Created new branch."
$ svn list -v ^/branches/
# ブランチを削除する
$ svn delete ^/branches/work_branch -m "Removed branch."
現在の作業コピーが主系かブランチなのかは、
svn info
コマンドのURLの項目を見るとわかる。
# 作業コピーに移動する
$ cd trunk/
# 作業コピーをブランチに切り替える
$ svn switch ^/branches/work_branch
# 作業コピーを主系に切り替える
$ svn switch ^/trunk
# 作業リポジトリをブランチに切り替える
$ svn switch ^/branches/work_branch
# ブランチが開始されたリビジョン番号を確認(最後に表示されるリビジョン)
$ svn log --stop-on-copy
# マージテスト
svn merge --dry-run -r {rev}:HEAD ^/trunk
# 主系からブランチに対して変更が適用される
# A = ファイル追加
# U = ファイル更新
# D = ファイル削除
# R = ファイル置き換え
# G = 自動マージ
# C = 競合
# マージ実行
svn merge -r {rev}:HEAD ^/trunk
# マージしたらコミットする
svn ci -m "Merged to branch from the trunk."
# 作業リポジトリをブランチに切り替える
$ svn switch ^/branches/work_branch
# ブランチが開始されたリビジョン番号を確認(最後に表示されるリビジョン)
$ svn log --stop-on-copy
# 作業リポジトリを主系に切り替える
$ svn switch ^/trunk
# マージテスト
$ svn merge --dry-run -r {rev}:HEAD ^/branches/work_branch
(結果は省略)
# マージ実行
$ svn merge -r {rev}:HEAD ^/branches/work_branch
# マージしたらコミットする
$ svn ci -m "Merged to trunk from the branch."