■ svk の使い方まとめ
svk:merge が気持ち悪くて svk 使ってなかったけど、パソコン持ち運ぶようになったし、mirror に直接コミットすると svk:merge 付かないっぽいので svk 使う事にしました。
使い方のメモ。
* リポジトリの構成
典型的な構成。
file:///PROJECT/ /trunk, /branches, /tags
* ミラー作成
svk mirror file:///PROJECT //mirror/PROJECT svk sync //mirror/PROJECT
リポジトリがでかい場合は、ヘッドのみ sync したりするのが良い。
svk sync -s HEAD //mirror/PROJECT
* trunk での作業
mirror をチェックアウトしてそこで作業すると、素の svn と同じように使える。データがローカルにあるので、diff の参照なんかは早い。svk:merge も付かない。幸せ。
チェックアウト
svk co //mirror/PROJECT/trunk PROJECT
コミット
svk commit
更新
svk update -s
* branch を作って作業
branch での作業も trunk とほぼ一緒。マージが入ってくるくらいだけど smerge が全部やってくれるので、svn のようにマージ元のリビジョンがどうのと悩む必要がなさそう。smerge の時に svk:merge が付く。
branch 作成
svk copy //mirror/PROJECT/trunk //mirror/PROJECT/branches/ore
チェックアウト
svk co //mirror/PROJECT/branches/ore
trunk の変更を手元にマージ (smerge to .)
svk smerge -st . svk commit
もしくは
svk smerge -st //mirror/PROJECT/branches/ore
変更を trunk へマージ (smerge from .)
svk smerge -lf .
push とか pull とかも使えるようだけど、branch と trunk 間のマージの場合はコミットを一回にまとめてログも「マージしたよ」なんてしたいから smerge を使う。
* オフラインでの作業
オフラインの環境だと mirror に直接コミットは出来ないので、作業用のローカルブランチを作ってそっちにコミットする。
参考: http://blog.bulknews.net/mt/archives/002058.html
trunk 用の作業ディレクトリを作って作業する場合。元々チェックアウトしてある(mirrorの) trunk ディレクトリに移動して以下。
作業コピー作成
svk copy . //local/PROJECT/
作業コピーを変更
svk switch //local/PROJECT/
コミット
svk commit
オンラインになったら push!push!push!!
svk push --verbatim
作業コピーを元に戻す
svk switch //mirror/PROJECT/trunk
Posted by Kyosuke Takayama at 2007-11-06 (Tue) 10:54 printable version