私はこの規則に同意せず、Mason Wheelerの発言に同意します。いくつかのアイデアを追加したいと思います。
私はコミットする意味のある変更があるたびにコミットしようとします:これは、いくつかの小さなバグを修正する場合は1日に数回、残りの部分では使用できないより大きなソフトウェアに取り組んでいる場合は週に1回になることがあります一貫した状態に達するまで、意味のある方法でコードを作成します。
また、私は解釈コミットとして意味のあるリビジョン公開コードベースに新しい機能を貢献しています。コミットする前にコードをクリーンアップして、他の開発者が変更履歴を見て変更の意味と目的を理解できるようにする必要があると思います。他の開発者が履歴に表示する変更が少ないほど良い:改訂履歴を見るとき、意味のある機能を追加する増分を見たい。私は、各開発者が持っていたすべての小さなアイデアに興味がなく、彼らがソリューションに到達する前に試してみたいと思っていました。
さらに、コードの現在のスナップショットがコミットされるバックアップ機能としてSVNサーバー(またはバージョン管理システム)を使用することは良い考えではないと思います(コンパイルされている場合):USBスティックを使用できますまたは、外部USBドライブまたはネットワークディスクを使用して現在のコードをミラーリングし、コンピューターが故障しても失われないようにします。リビジョン管理とデータバックアップは2つの異なるものです。リビジョンの公開
は、コードのスナップショットの保存と同じではありません。
最後に、時々コミットすることは問題ではないと思います(つまり、コードの現在の状態に本当に満足している場合のみ)。異なる人が同じファイルを同時に操作すると、多くのマージ競合が発生します。これは悪い習慣です(この記事のポイント7を参照)。マージの競合は、プロジェクトを明確なインターフェイスとできるだけ少ない依存関係を持つモジュールに分割し、開発者の作業を調整して、作業するコードができるだけ重複しないようにすることで軽減する必要があります。
ちょうど私の2セント。
編集
私が思いついた時期尚早のコミットに対するもう1つの理由は、(非常に)バグの多いバージョンをテストできないことです。トランクでコミットしていて、テストチームが毎日テストしている場合、数時間(または1日間)テスト可能なバージョンがない場合があります。バグを修正せずに変更を元に戻そうとしても、再構築には数時間かかる場合があります。たとえば、チームで5人のテスターが働いている場合、非アクティブなためにチームの時間の5 x 2 = 10時間を無駄にしています。それは一度私に起こったので、私は本当にできるだけ早くコミットの名前で時期尚早なコミットを避けようとします。