1. ホーム
  2. ギット

[解決済み】`git diff --patience` は何のためにあるのですか?

2022-04-06 15:32:02

質問

忍耐アルゴリズムとデフォルトの git diff また、どのような場合に使用するのでしょうか?

どのように解決するのですか?

を読むことができます。 Bram Cohenの投稿 忍耐の差分アルゴリズムの作者ですが、私が見つけたのは このブログの記事 は、patience diff アルゴリズムを非常にうまくまとめています。

<ブロッククオート

Patience Diffは、その代わりに、テキスト中の重要な内容のマーカーまたは署名として機能する、頻度の低い高内容の行にエネルギーを集中させます。これはLCSベースの差分であることに変わりはありませんが、重要な違いとして、署名行の最長共通部分のみを考慮する点が挙げられます。

<ブロッククオート

両側でちょうど1回ずつ出現する行をすべて見つけ、それらの行について最長公約数を行い、一致させる。

どのような場合に 使用 忍耐の差分? Bramによると、patience diffはこのような状況に適しているそうです。

本当に悪いケースは、2つのバージョンが乖離している場合です。 開発者がパッチのサイズに気を配っていない場合 を制御しています。このような状況では、diffアルゴリズムが時折 長い中括弧の部分をマッチングさせるため、「ミスアライン」になってしまう。 の関数の中括弧を関連付けることになります。 あるバージョンの関数の中括弧と、その次のバージョンの関数の中括弧と 他のバージョン このような状況は 非常に醜い ということになりかねません。 このようなものが必要な状況では、使用できないコンフリクトファイルです。 最も首尾一貫した形で表示されます。