重大ではないタイプミスを解決するためだけにコミットする価値はありますか?


67

コードで重要でないタイプミス(たとえば、print(error)ステートメントの誤ったアポストロフィ)に遭遇した場合、そのエラーを解決するためにコミットする価値がありますか、それともそのままにしておくべきですか?

具体的には、これらの重要ではないタイプミスを解決する価値に対して、コミットログのガムアップを比較検討することに興味があります。私はそれらを解決することに傾いています。私はつまらないですか?


40
些細なコミットで問題が発生した場合は、より優れたVCS、より優れたログフィルタリングツール、またはさまざまな修正の重大度を通知するためのより良いプラクティスに投資する必要があります。
レックスカー

@ root45結果を見ると、これらはすべてこの質問が尋ねているものとは異なるタイプの文法です。
イズカタ

回答:


130

私の個人的な感じは、小さな改善であっても、品質を改善することは、追加のコミットログエントリのマイナーな不便の価値があるということです。結局のところ、壊れたウィンドウ効果を考慮に入れると、小さな改善が非常に重要になります

TRIVIAL:タグをプレフィックスとして付けるか、VCSでサポートされている場合は簡単にマークすることをお勧めします。


72
これに追加したいのは、他の何かとひとまとめにするのではなく、このようなものを個別にコミットすることです。集中に関する問題は、ノイズが多すぎると、コードレビューアが関連する変更から注意をそらす可能性があることです。+1
アンディ

9
壊れたウィンドウ効果に言及するための+1。小さなことは重要です。すべてが本当にきれいであれば、人々は不注意に書かれた、またはテストされていないコードをコミットする前に、よく考えます。
ロイティンカー

25
また、機能でまとめた場合は、変更を失った機能をロールバックします。一度に1つのことをコミットします。
ctrl-alt-delor

4
私は、VCSがコメントを些細なものとしてマークすることを許可していることに本当に興味があります。私はSVN、Hg、Gitを使用してきましたが、どちらにもそのようなことに気づいていません。
シオン

3
@Andyそのノイズは最悪の部分ではありません...誰かが後でその機能を必要としないために例えばこのコミットを元に戻すことに決めた場合、突然コミットの一部であった小さな改善も失います。
rFactor

49

あなたはつまらないものではなく、それらを個別に解決する方が良いです。変更がよりアトミックであればあるほど、クラッシュするバグ修正が500のコメント/タイプミスの変更と混同されることは望ましくありません。


9
+1各リビジョンは、1つの特定の修正にのみ関連する必要があります。各リビジョンにも実際の変更の間に修正されたランダムなタイプミスの束がある場合、修正をバックポートすることがNIGHTMAREになります。
グラント

28

一般的な場合:はい

それはだメンテナンス性高めるために、常にそれだけの価値があなたのソフトウェアのを。

ちょうどそれのために行きます。

リリースを出荷しようとしている場合...

...そして、あなたがチームリーダーでない場合は、彼/彼女に確認してください


コミットログの内容について...

孤立したタイプミスを修正するだけの場合は、少なくとも「機能」関連のコミットとは区別できるような何かを書くべきだということには、他の人たちも同意します。

一般的な方法は、タイムトラッカーと無限の変更を追跡するために、課題トラッカーに死ぬことのないタスクを含めることです。たとえば、次のタスクを実行することは珍しくありません。

  • 大規模な自動化された無害なクリーンアップ(ホワイトスペーススイープ)、
  • 文法とタイプミスの狩猟
  • システムの変更をビルドします。
  • 等...

正しく文書化されたチケットを作成するのが面倒になったときに、これらはほとんど何でも捨て可能なタスクIDとして使用されないことに注意してください。特に、IDにリンクされていないコミットを拒否する場合(これは良いことですが、このような大きなタスクは怠beな開発者にとってさらに魅力的です)。


7
タイプミスの修正についてチームリーダーに確認しますか?私が今後のリリースでストレスを感じているチームリーダーであれば、そのような些細さで邪魔されたくありません。

2
@Joh:必ずしもビルドを壊すわけではありませんが、他のビルドジョブがあるかもしれませんし、既にタグ付けされて使用できる状態にあり、監査コントロール(業界によって)によってこの無害なコミットを結びつける必要があるかもしれませんタスクと要件に対応しているため、どこからともなく出てきた場合、それは少し頭痛の種になります。リリースがリリースされてからわずか数日間は簡単に保存できます。しかし、一般的に、私はあなたに同意します、そして、私はそのように走っている会社がそれを間違っているとさえ言うでしょう。しかし、あなたはそれを修正する人ではないので、あなたがシニアでない場合は彼らによってそれを実行してください。
ヘイレム

2
@Joh:基本的に、私のチームのリーダーが新しいビルドを開始しようとしているときに(またはすでに開始しているときに)ビルドシステム上で新しいビルドが突然ジャンプするのを見ると、このアプローチを使用してストレスレベルが上がることを保証できますまた
...-ヘイレム

7

タイプミスはコミットとして追加する必要があります。スペルミスや文法エラーを修正すると、コードが読みやすくなります。

「Fixed typo」または「Fixed typo in file.c」などのコミットメッセージを使用すると、これらのコミットを他の主要なコードコミットと区別するのに役立ちます。


7

はい、特にプロジェクトの早い段階でこれを絶対に行う必要があります。

どうして?2つのポイント:

  1. タイプミスが「クリティカル」であるかどうかは、手遅れになるまでわかりません。誰もが大した問題ではないと考えているため、いくつかの修正はおそらく修正されません。それまでです。

  2. 数百行のコード/関数呼び出しが行われた後で修正するよりも、タイプミスを早期に意図的に修正する方がはるかに簡単です。繰り返しますが、一時的なハッキングは驚くほど急速に半永久的になります。これが、「CollapseAll」メソッドと「ColapseAll」メソッドの両方を持つオブジェクトを処理する必要がある理由です。


2
はい-すべての正しい答えのうち、私はこれが「いつ」に依存することに言及するのに最適です。
元気ウォンコ

4

エンドユーザーに表示される可能性のある文法エラーについては、はい、ユーザーまたはQAがエラーを報告して追跡する必要がある可能性が完全にあるため、必ずコミットする価値があります。既に修正されている場合は、問題の解決にかかる時間を短縮できます。

ただし、コードに関するコメントに文法的なエラーがある場合、実際のコードへの変更の一部である場合を除き、何もしません。その場合、コードのドキュメントを更新します。


3

コミットログをいっぱいにすることを心配しているなら、あなたは何か間違ったことをしている。:-)頻繁なコミットは良いことです!私は常にタイプミスを修正します。コードベースをできるだけ早く入手して、開発サイクルをスピードアップしてください!


2
I commit typo fixes all the time気になるIMO、英語が上手なプログラマーを探してみませんか?
ライライアン

屋は最近入手できるものを取ります。実行可能なコードをまったく書くことができるプログラマーを見つけることは重大な問題です!
ブライアン・ノブラウフ

2

はい、投票します。それらをチェックインします。私は人々が物をチェックインするのが嫌いな会社で働いています。私はほとんど何でも意味します。コードレビューは広範でした。コードの状態を想像できます。実際、コードは恐ろしいものではありませんでしたが、ワインのように流れるのではなく、魔法のようににじみ出ました。


0

変更管理プロセスで許可されていますか?

私の環境では、コミットするたびに、ビジネスユーザーまたは必須のシステムレベルの変更のいずれかによって要求された変更要求に結び付け、対応するエンドユーザーテストプロセスを完了する必要があります。あなたが説明しているような単純なタイプミスはおそらくそれらのいずれとしても記録されないでしょう(誰も気付かずに4年以上存在していた私のアプリの1つでタイプミスと文法エラーを見つけました)私は自分自身を説明するのは非常に困難な時間を持っていると呼んでいます。

あなたが説明しているような変更を保存します(実際には、実際には変更があります-メソッド名のつづりが間違っているため、それを発見しました)。同様に作成し、ログに「修正されたさまざまなタイプミス」を入れます。


+1一部の環境では、これは事実です。職場でこれが当てはまらないという理由だけで、支持しないでください。
MarkJ

-1変更管理プロセスは非常に時間がかかるようです。私はすべてのコミットが変更要求に関連している必要があることを理解します(そして好むことさえあります)-あなたのプロセスのこの部分はうまく見えます。しかし、OMGは、開発者が開始したリクエスト(リファクタリング/タイプミスの修正など)が禁止されているように見えますが、これは私に大きな赤い旗を上げます。それは一種のビジネスユーザー/監査人は想定して、常にそれが真実に今までに近いものならば、それらは、コードそのものを書きたい-開発者よりもよく知っている
ブヨ

開発者は、前進することを承認する人々に、行う価値のある変更を納得させることができれば、前進することができます。しかし、メソッドの名前に単純なタイプミスを見つけたり、メソッドにリファクタリングする必要があるコピー/貼り付けされたコードを見つけた場合、許可なしに変更を加えることはできません。それは単に「コードで正しいことをする」ことではありません-受け入れテストを実行する必要があり、開発者は「私はこの変更を加えました。しましたが、テストサイクルを実行する必要があります。」
-alroc

@alrocは、「if-can-convince」は、合理的に見える表面の下で非生産的なプロセスを隠すだけです。大きな変更、合意されたマイルストーンチェックポイント/リリースなどについて、ビジネス/監査を説得するための要件は、理にかなっています。開発とQAに1週間かかる努力を正当化するために数時間/数日を費やすことは、退屈ですが公平です。しかし、一つ一つのスペル修正またはのためにこれを強制的に抽出する方法私に休憩を与える... -これは無思慮に間違った時間に間違った段階で挿入された制御以外の何ものでもない
ブヨ

これをもう一度説明してみましょう。他の承認済みの変更に取り組んでいる間にタイプミスを修正したりメソッドを抽出したりできれば、だれにも売らずにそれをすり込むことができます。しかし、私はユーザーに見えない変更を加えることはできず、最初にその力を売らなければビジネス/ユーザーに直接的なプラスの影響を与えません。
-alroc

-1

DVCSを使用して履歴を編集する

クリーンなコミット履歴が心配な場合は、機能ブランチで主な作業を行うことを検討してください。たまたま分散VCSで作業している場合は、コミット履歴を簡単に編集してからメインブランチにプッシュできます。SVNを使用している場合は、Gitを試してください-Subversion と双方向やり取りできます。また、実際にSubversionにコミットする前に履歴を編集することもできます。

そうでなければ常識を保つ

コミット履歴を編集したくない、または編集できない場合、自動テストまたはコンパイルに影響しないマイナーなタイプミスに対して早期コミットまたはアトミックコミットを実行する機能的な理由はありません。この場合、私の意見では、コミット履歴をクリーンに保つことは、本当にアトミックなコミットを行うよりも重要であるはずです。ミキシング1または2「通常」の変更でタイプミスを修正しても、潜在的なレビュープロセスに害を与えないだろう。ただし、大きなコーディングセッションの後に「クリーンアップ」する場合など、いくつかの些細な修正を1つのコミットにグループ化することもできます。

機能的なバグは、アトミックコミットでできるだけ早くコミットする必要があることに注意してください。

ここでの回答の一般的なトーンは、小さなタイプミスでも「すべてを高速にコミットする」戦略を示唆しているようです。私は意見が合わず、議論を歓迎する傾向があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.