2011/09/04

git-svn で dcommitするときに。

久しぶりにエントリですw

相変わらず、社内で利用しているSCMは、Subversionでして、 git-svn のお世話になってます。
で、前に分散管理勉強会で git-svn の発表したときに、間違えてはいないんですが、
ちょっとなぁって思う部分があったので、そこについて補足しようと思います。

何かって言うと、コミットログについてです。

スライドの順番通りやると、コミットログが「マージしました」になります(汗
どういうことかっていうと、masterにすべてマージしてからコミットする手順で紹介してたんですね

手順的には

ブランチに master と working があるとして
  1. wokingで作業
  2. 一段落したので、コミットしようと思い立つ
  3. git checkout master でマスターブランチに移動
  4. git svn rebase で、masterを最新に更新
  5. git merge working で、masterに変更を反映
  6. git svn dcommit でsvnにコミット
これだと、5の時点で、サーバー上に反映されるログが

「Wokingをマージしました(キリ」

になります・・・

んで、正しい方法なんですが、

  1. wokingで作業
  2. 一段落したので、コミットしようと思い立つ
  3. git checkout master でマスターブランチに移動
  4. git svn rebase で、masterを最新に更新
  5. git checkout working でworkingに戻る。
  6. git rebase master で、working を最新に。
  7. git svn dcommit でsvnにコミット
という感じでできるっぽいです。(今のところ大丈夫)

実はまだ、コンフリクトしてないので、どーなるかなーとは思いつつも、
コンフリクトしない素晴らしい状況(まぁ僕のところは僕しかイジらないってだけですが)
で仕事してるので、またなんかあったら、情報更新しようと思います。

ではでは。