SVNメモ帳のお品書き。 TIPS †特定のディレクトリをdump & restore †svndumpとsvndumpfilterコマンドを組み合わせてデータを引っこ抜く。 /usr/bin/svnadmin dump /var/lib/svn 2> error.out \ | /usr/bin/svndumpfilter include (ディレクトリ名) > dumpfile 2> /dev/null 適当なディレクトリにリポジトリを作ってダンプデータをloadする。 svnadmin create /some/where/repos svnadmin load /some/where/repos < dumpfile $Id: $を置換する †CVSライクに$Id: $を置換したい(SVNでは推奨されていないみたい)。 propsetコマンドでsvn:keywords属性を設定する。 $ svn propset svn:keywords Id hoge.c カレントディレクトリ以下の.phpファイルに設定するには次のようにする(強引)。 $ for i in `find . -name "*.php"`; do for> svn propset svn:keywords Id $i for> done 外部のdiffコマンドを使う †svn diffする際に外部のdiffコマンドを使うことが出来る(例えばFSFのdiffとか)。--diff-cmdと-xオプションを使う。 $ svn diff --diff-cmd diff -x '-ub' file mime-typeを変更する †何かしらのテキストファイルがバイナリにマークされていて差分が見えない場合、 mime-typeを変更することで差分が見えるようになる。 svn propsetコマンドでmime-typeを指定する。 $ svn propset svn:mime-type (変更したいmime-type) filename logの出力行数を制御する †例えば最新5件まで出力する。 svn log --limit=5 マージ †branchのファイルをtrunkへマージする †branchの作業コピーに移動。 cd working_copy_of_branch logを表示してブランチが作成されたリビジョンを確認する。以下の例ではrevision 391がコピーされた最初のリビジョン。 svn log --stop-on-copy ------------------------------------------------------------------------ r391 | m-kikawada | 2008-08-16 21:21:30 +0900 (土, 16 8 2008) | 2 lines create branche for development trunkの作業コピーに移動。 cd working_copy_of_trunk trunkの作業コピーにbranchの成果をマージする。リビジョンにはsvn logで取得した値を使う。 svn merge -r391:HEAD http://example.com/some/where/branches/for_new_feature/ 外部のSVNリポジトリを取り込む †こんなことが出来るのか!と驚いた。 propeditでsvn:externalsを開く。 svn propedit svn:externals . チェックアウトする場所、SVNリポジトリURLを書く。 lib/vendor/swift http://swiftmailer.svn.sourceforge.net/svnroot/swiftmailer/tags/php5/3.3.3/lib/ 参考 † |