Gitはこれらの4つのdiffアルゴリズムを提供していますが、それ以上の情報がなければ、それらの違いは何ですか。
この各アルゴリズムの利点は何ですか?アルゴリズムの動作が異なるさまざまなケースの比較はありますか?
どのアルゴリズムも明らかにすべてのケースで最良の選択ではないため、複数のアルゴリズムがサポートされていると思います。
違いは、パッチ出力の読みやすさとパッチの生成に必要な処理時間です。
要約すると、これは私が理解している違いです:
これは、マイヤーズ、忍耐力、およびヒストグラムの速度の比較です。 http://marc.info/?l=git&m=133103975225142&w=2
ヒストグラムとマイヤーズの差分出力の比較を次に示します。 http://marc.info/?l=git&m=138023003519837&w=2
MyersとHistogramの2つのアルゴリズムのみを比較しますが、役立つ場合があります。 Nugroho et al。による研究 は、両方のdiff
アルゴリズム間の不一致のレベルを明らかにします。この調査では、メトリック、SZZアルゴリズム、パッチという3つの比較を行いました。メトリックとSZZの比較から、識別されたさまざまなコード変更の数におけるMyersとHistogramの大きな違いを確認できます。それらのどれもdiff's
変更の説明が正しくありません。ただし、手動パッチ比較から、ヒストグラムアルゴリズムは、人間の変更の意図を説明するのに適切なdiff
出力を提供します。