svn
svnの使い方
Table of Contents |
svn コマンド
svn export
.svn 情報なしでのファイルのコピー
svn import
.svn 情報なしでのコミット(初回はこうしてファイルを登録し、その後チェックアウトする)
svn diff
svn diff -r 615 svn diff -r 615:625
svn revert
svn revert --recursive .
svn merge
古いrevisionに戻す
svn merge -r 897:892 svn+ssh://nseo@...../trunk
ブランチのマージ
$ cd /branch # assume the local copy directory of a branch as 'branch' $ svn update $ svn log --stop-on-copy # find the starting revision of the branch $ svn co svn+ssh:// ..... trunk/ /trunk $ cd /trunk $ svn merge -r [REV]:HEAD svn+ssh://..../branches/[branch]
http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/subversion.html#sec33
svn ls (レポジトリを ls)
ブランチ名の確認をしたり
svn ls svn+ssh://nseo@..../
svn copy (ブランチの作成)
svn copy svn+ssh://nseo@..../trunk svn+ssh://nseo@..../branches/hoge-20090812
svn mv (レポジトリ側で rename)
svn mv svn+ssh://nseo@..../branches/hoge-20090812 svn+ssh://nseo@..../branches/moge-20090812
UNIXコマンド
.svn 消去
find . -name '.svn' | xargs rm -r
ディレクトリ名に空白があったりしてうまく行かない場合は
find . -name '.svn' -exec echo \"\{\}\" \; | xargs rm -r
.svn を除いて zip
find . -name ".svn" -prune -o -print | xargs zip a.zip
特定のステータスのファイルだけ revert
例えば
D hoge.txt
svn st | grep '^D' | sed 's/^D//' | xargs svn revert
ローカルでの SVN レポジトリの作成と利用
mkdir /path/to/repos svnadmin create /path/to/repos/svnrepo # レポジトリを作る svn import [project dir] file:///c:/cygwin/path/to/repos/[project name] -m 'initial import' mv [project dir] [project dir].bak svn co file:///c:/cygwin/path/to/repos/[project name] [project dir]
レポジトリ内のプロジェクトを消す
svnadmin dump /path/to/repos > repos-dumpfile cat repos-dumpfile | svndumpfilter exclude [project name] > remove-dumpfile mkdir /path/to/new/repos svnadmin create /path/to/new/repos svnadmin load /path/to/new/repos < remove-dumpfile
svnsync (レポジトリの同期)
同期先レポジトリの作成 + 設定
レポジトリ作成
$ cd /path/to/repos/ $ svnadmin create [repositoryname]
フックスクリプトpre-revprop-changeを作成する
$ cp [repositoryname]/hooks/pre-revprop-change.tmpl [repositoryname]/hooks/pre-revprop-change $ chmod 755 [repositoryname]/hooks/pre-revprop-change
同期先初期化
$ svnsync init --username ユーザ名 --password パスワード file:////path/to/repos/[repositoryname] svn+ssh://SVNサーバ/SVNレポジトリへのパス
あーSVNサーバにミラー元から接続しないといけないのか・・・ 参考