Edited at

【svn】基本コマンド

More than 3 years have passed since last update.


svnの情報表示

svn info

ディレクトリ指定

svn info {dir}


ステータス表示

svn st

ディレクトリ指定

svn st

記号
意味

' '
変更なし

A
追加されたファイル

D
削除されたファイル

M
修正されたファイル

C
競合しているファイル

I
無視されているファイル

?
管理下にないファイル

!
失われたファイル

+
コミット準備完了のファイル


チェックアウト

svn co {url}

ディレクトリ指定

svn co {url} {dir}


ログ

svn log

ファイル、ディレクトリ指定

svn log {url/dir,file}

リビジョン指定

// r999から最新まで

svn log -r 999:HEAD

最新10件表示

svn log -l 10

変更のあったファイルも表示する

svn log -v

差分も表示する

svn log --diff  


差分

svn diff 

リビジョン間の差分

svn diff -r r999:r1000

特定パスのリビジョン間の差分

svn diff -r r999:r1000 {dir/file}

差分のファイル名表示

svn diff --summarize -r r999:r1000

改行コードを無視

svn diff -x --ignore-eol-style {file}


ファイル一覧表示

svn ls

詳細に表示

svn ls -v

ディレクトリ指定

svn ls {dir}


ファイルの登録

svn add {dir,file}

取り消し

svn revert {dir,file}


ファイルの削除

svn del {dir,file}


更新を取り込む

svn up

ディレクトリ指定

svn up {dir}


コミット

※ アップデートしないと、ログに反映されない

svn ci && svn up

メッセージを指定

svn ci -m 'message' && svn up


編集の取り消し

svn revert {file}


ブランチの作成

svn copy {url}/branches/hoge -m 'message'


タグを切る

svn tag {url}/tags/hoge -m 'message'


作業ディレクトリの切り替え

svn sw {url}/branches/hoge


マージ

現在の作業ディレクトリがtrunk

ブランチをtrunkにマージする場合

svn merge -r 999:HEAD {url}/branches/hoge

svn ci -m 'merge message'

merge内容を確認

実際にmergeは行われず、mergeした場合の内容が表示される

基本的には--dry-runを走らせてから、mergeを行う

svn merge --dry-run {url}

特定ファイルを特定リビジョンに戻す

svn merge -r[現在のリビジョン]:[戻したいリビジョン] {file_path}

merge時のコマンド

コマンド
内容

(p) postpone
競合を後で解決

(df) diff-full
マージしたファイルに加えたすべての変更を表示

(e) edit
マージされたファイルをエディターで解決する

(mc) mine-conflict
作業側の内容を正として競合を解決する (branchからtrunkをmergeした場合はbranch側を正)

(tc) theirs-conflict
相手側を正として競合を解決する (branchからtrunkをmergeした場合はtrunk側を正)

(r) resolved
競合の解決


競合の解決

svn merge時にpostpone(競合を後で解決)をし、後で解決した場合以下のコマンドで競合を解決できる

svn resolved {file}


zsh設定

個人的なzshの設定

# for svn

alias svn="colorsvn"
alias sst='svn st'
alias sad='svn add'
alias sup='svn up'
alias sci='svn ci'
alias sco='svn co'
alias sin='svn info'
alias sme='svn merge'
alias sre='svn revert'
alias sdl='svn del'

# svn log limit
sl(){
svn log -l $1 -v
}

# svn diff
sdi(){
svn diff -x --ignore-eol-style $1 | vim -R -
}


その他のコマンド

使う時があったら更新していく予定。。

blame (praise, annotate, ann)

cat

changelist (cl)

cleanup

export

import

lock

mergeinfo

mkdir

move (mv, rename, ren)

patch

propdel (pdel, pd)

propedit (pedit, pe)

propget (pget, pg)

proplist (plist, pl)

propset (pset, ps)

relocate

resolve

unlock

upgrade