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 ユーザーは一度さわってみるといいと思う。