FrontPage


SVNメモ帳のお品書き。


TIPS

特定のファイルを無視する

propeditでsvn:ignoreプロパティを変更。

svn propedit svn:ignore .

無視したいファイルとかを書き込んで保存。

*~
*.bak
*.pyc

特定のディレクトリを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/

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-08-04 (火) 14:07:44 (2972d)