DVCSというかcommitについてのメモ

一ヶ月前くらいにとてもひどい commit を見たときに説明用にメモしたものを発掘。

ちなみに現在の環境は中央が Subversion で、非エンジニア含めて TortoiseHG を入れてとりあえず作業がぶっ飛んでしまわないようにしているような状態。

  • DVCS のメリットは svn に commit しなくていいことじゃない
  • 大事なのは svn の commit(というかみんなが読む commit)
    • ここに分かりやすい log があればそれが資産になる
    • 分かりやすい commit とは変更点と変更の意図がちゃんと対応している commit

特に意図が大事。意図が抜けて作業しか書かれていない commit は後から見ても意味不明。commit メッセージに書くのが難しいなら ticket で補うのもあり。1

  • DCVS のメリットは svn に入れる前に commit を失敗できること(push の前に読み直す)

現状の試みは

  • 上のような commit の説明を全員にするのは難しいが、元に戻せる安心感を提供したいから

個人的には git-svn を使っていて、git を使っていると感じるのは rebase しやすいのは良い commit かもなぁという辺り。あとで順番を入れ替えたり message を書き換えたりしやすいし、忘れていたファイルを見つけてもあとで commit して rebase で寄せていくことができる。もちろんこれは作業上のメリットであって読み手のメリットではないけど、一度に複雑な変更を加えてしまった場合はこういう作業はできないので、読み手にとっても一つずつ分かりやすい commit になるんじゃないかなぁと感じている。

  1. 例えば例外的な何かに対応するためにあえてよくないコードに変更している場合があっても、後から見たら分からないからそれを「修正」して壊してしまう可能性も生まれる。そういうのはコードの中にコメントとして残しておかないとまた壊す可能性あるけど、それはまた別の話かな。 

More