Skip to content

Instantly share code, notes, and snippets.

@yukpiz
Last active August 29, 2015 14:26
Show Gist options
  • Save yukpiz/2ba7066703a7e719a2db to your computer and use it in GitHub Desktop.
Save yukpiz/2ba7066703a7e719a2db to your computer and use it in GitHub Desktop.

Subversionチートシート

よく使う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."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment