【svn】基本コマンド

  • 90
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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