git-svn 作業フロー

plagger レポジトリで作業するとする。svkとの比較つき。

まず git レポジトリ作成

git svn init -s http://svn.bulknews.net/repos/plagger/ plagger

これで、plaggerってディレクトリにgitレポジトリができる。svk mirror的なものですね

次にsvnとデータをsyncさせる。

cd plagger
git svn fetch

これは svk sync 的なもので対象の変更をすべてtrackしてmerge情報とかを記録する。なので重い。体感では svk sync 以上。

ちなみに最初の init の代わりに clone とすると一気に fetch までしてくれる。

trunk で作業するよ (ここからが通常のワークフロー)

git checkout trunk

で trunk に移動。

svn が変更されてるかもしれないので

git svn rebase

でチェック。(svk pull 的なもの)

いろいろ編集後

git commit -a

で git レポジトリにコミット。この時点ではローカルの git レポジトリにしか反映されてない。

svn に反映させるには

git svn dcommit

とする。これが svk push 的なもの。

ここまでが一応 co から ci までの流れ。

もう少し例。

fastladder-crawler ブランチで作業してみる

ブランチに移動

git checkout fastladder-crawler

いろいろ変更後コミット

git commit -a

このブランチをtrunkにマージしよう

まずtrunkに移動して

git checkout trunk

マージ

git merge fastladder-crawler

これだけ。すばらしく簡単。

ローカルブランチを作って作業も簡単

まずtrunkのローカルブランチをつくる。まずtrunkへ移動

git checkout trunk

test という名前のブランチ作成してそこに移動

git branch test
git checkout test

これは以下で一発にできる

git checkout -b test

いろいろ編集して test ブランチにコミット

git commit -a

それを trunk に反映

git checkout trunk
git merge test

用が済んだらtestブランチ削除

git merge -d test

とかいう感じ。

ブランチ作ったりマージしたりがさくさくできて気持ちいい。svk ユーザーは一度さわってみるといいと思う。

by typester / at 2008-02-19T22:56:00 / git / Comments(0)