svnコマンドの覚え書き
メインPCにMacを使うようになってsvnもコマンドラインで使っているのですが、たまにしか使わないコマンドはすぐ忘れてしまうのでメモっときます。
svnの管理下から除外する
キャッシュや設定ファイルなどの、svnの管理下に置きたくないファイルやディレクトリを指定します。cacheディレクトリ以下の全ファイルをsvnの管理下から除外したい場合は
svn propset svn:ignore '*' ./cache
のように指定します。
外部定義を設定する
複数の作業プロジェクトの中で共通したディレクトリを共有したりするときにはsvn:externalsを設定します。
例えばプロジェクトが以下のようなディレクトリ構成になっていたとして
/project
├front
| ├web
| ├app
| └lib
|
└admin
├web
├app
└lib
libをfrontとadminで共有したいときにはadminのカレントディレクトに移動して
svn propset svn:externals "lib http://code.webtech-walker.com/svn/project/front/lib" .
とします。
複数設定する場合はsvn propsetで改行区切りでもできますが、下記のようにsvn propeditにエディタを指定して設定することも可能です。(上のsvn:ignoreも同じ)
svn propedit svn:externals . --editor-cmd=vi
設定したものは下記コマンドで確認できます。
svn proplist -v
ブランチを作成する
svn copyコマンドでブランチを作成します。
svn copy http://code.webtech-walker.com/svn/trunk http://code.webtech-walker.com/svn/branches -m "コミットログ"
ブランチをマージする
trunkをチェックアウトしているディレクトリに移動して
cd <svn_dir>/trunk
ブランチを作成したリビジョンから最新のリビジョンまでをマージします。ブランチを作成したときのリビジョンが仮に100だとしたら、以下のようにします。
svn merge -r 100:HEAD http://code.webtech-walker.com/svn/branches .
この時点ではまだコミットはしていないので、確認してOKならコミットします。
一括でadd/delする
一括でsvn addする場合は
svn st | grep '^?' | awk '{ print $2 }' | xargs svn add
をaliasで指定してたんですが、addの場合は
svn add * --force
でできるみたいですね。ちなみに削除済みのファイルを一括でsvn delする場合は
svn del * --force
とすると存在するファイルやディレクトリが削除されるので
svn st | grep '^!' | awk '{ print $2 }' | xargs svn delete
とかしないとダメっぽい。
- Prev Entry:word-break:break-allをFirefox等でも実現するjavascript
- Next Entry:zshの設定メモ