Es gibt tatsächlich verschiedene Diff-Algorithmen. (Und es gibt viele mögliche Diffs, die zu genau der gleichen Änderung an einer Datei führen - das ist einer der Gründe, warum es so sinnvoll ist, dass Git keine Änderungen speichert, sondern nur den Zustand des Baums bei jedem Commit :))
Sogar innerhalb von Git können Sie bei einigen Befehlen zwischen zwei verschiedenen Diff-Algorithmen wählen - versuchen Sie zum Beispiel, eine Funktion in einem C-Code zu verschieben und vergleichen Sie die Ausgabe von:
git diff
... und:
git diff --patience
Letzteres ist in der Regel besser lesbar, wenn auch langsamer zu berechnen.
Ich bin nicht sicher, welchen Algorithmus opendiff verwendet, aber vielleicht ist er ähnlich wie Geduld diff ?
Leider glaube ich nicht, dass es derzeit in Git möglich ist, einen anderen Diff-Algorithmus in git add -p
obwohl ich das auch sehr nützlich finden würde. Es gibt eine Patch-Serie hier um diese Funktion hinzuzufügen, aber es sieht so aus, als ob der Autor das noch nicht nachgeschickt hat.