親父の小言 バージョン管理システムへのコミット編

(以下、バージョン管理システムVCSと書いている。副音声はこちら

  1. (論理的に一塊である)小さな作業ごとにコミットしろ
  2. コミットログを残せ
  3. コメントで残すな、コミットログで残せ
  4. コメントアウトして残すな、履歴間の差分を残せ
  5. 不要なファイルは消せ
  6. ソースコードは現状を示せ、歴史的経緯はVSCに委任しろ

(論理的に一塊である)小さな作業ごとにコミットしろ

(論理的なまとまりのある)1つの作業ずつ確実に進めていけ。1つずつ積み上げるごとにコミットしろ。

アレもコレも詰め込んで1度にコミットするな。差分が大きすぎて、変更内容を把握するのが辛くなる。

コミットログを残せ

何のために何をどうしたのか、ドメインに着目した視点で記録を残せ。難しい話ではない。どうせ、ソース中のコメントには「○○のため××に変更」とか書いてるんだろ?

前項の「(論理的に一塊である)小さな作業ごとにコミットしろ」に従っているのなら、ログに書く内容に詰まることはない。

コメントで残すな、コミットログで残せ

コメントで「○○のため××に変更」とか書くな。それはコミットログに書け。何度もソースに手が加えられることで、いずれそのコメントは役立たずどころか邪魔者に成り下がるだろう。

コメントアウトして残すな、履歴間の差分を残せ

古いコードはVCSで取り出すことができるのだから、わざわざ古いコードをコメントアウトして残すな。キレイさっぱり消してしまえ。

特に、まとまったコードブロックをコメントアウトして変更版を書くよりも、不要な部分を消してしまった方が、かえって履歴間の差分表示にて何をどう変更したか分かりやすく表示されるものだ。

不要なファイルは消せ

リビジョンを変更すれば消したファイルを取り出すことができるのだから、不要になったら思い切って消してしまえ。

あと、VCSで差分を見れるのだから、変更前のファイルを取っておく必要もない。

ソースコードは現状を示せ、歴史的経緯はVSCに委任しろ

つまりは、そういうことだ。だから要らんものはソースツリーから消せ。