Quelle est la différence entre "git diff --patience" et " git diff --histogramme`?
Cette question précédente demandé les différences entre les 4 différents Git diff stratégies, mais la seule différence que l'a expliqué la différence entre myers
et patience
, ce qui est assez bien expliqué d'ailleurs.
Comment le histogram
les travaux de la stratégie? Ce qui le différencie de patience
? Le git-diff page de man dit seulement qu'il "s'étend de la patience, de l'algorithme à "soutenir la faible occurrence des éléments communs"." D'autres pages de mentionner que c'est plus rapide, et qu'il vient de JGit, mais ils n'expliquent pas où et comment son algorithme ou les résultats diffèrent de patience
.
Où puis-je trouver une description du histogram
algorithme par rapport à la patience
algorithme, avec le même niveau de détail que Bram Cohen description originale de l' patience
algorithme?
(Si c'est juste une question de mise en œuvre de la performance avec pas de cas qui permettront de produire des résultats différents, pourquoi n'a-t-elle pas mis en œuvre comme un nouveau backend pour patience
?)
Vous devez vous connecter pour publier un commentaire.
Cet histogramme stratégie a été introduit dans git 1.7.7 (Sept 2011), avec la description suivante (comme mentionné par l'OP)
JGit comprend
src/org/eclipse/jgit/diff/HistogramDiff.java
ettst/org/eclipse/jgit/diff/HistogramDiffTest.java
La description, il est assez complet:
Noter que ce type d'algo a été déjà utilisé pour pack_check, en 2006 git (1.3), pour
git-verify-pack -v
. Il a été réutilisé pour l'index-pack dans git 1.7.7S'engager 8c912ee en fait introduit
--histogram
diff:s'engager 8555123 (git 1.7.10, avril 2012) ajouté:
Enfin, s'engager 07ab4de (git 1.8.2, Mars 2013) ajouter
config: Introduire diff.algorithme variable
S'engager 07924d4 ajoutées en même temps que la
--diff-algorithm
option de ligne de commande.Comme l'OP Stuart P. Bentley mentionne dans les commentaires:
Mise à jour: Git 2.12 (T1 2017) vont partir à la retraite le "fast hash" qui avait désastreux des problèmes de performances dans certains cas de coin.
Voir s'engager 1f7c926 (01 Dec 2016) par Jeff King (
peff
).(Fusionnés par Junio C Hamano --
gitster
-- dans s'engager 731490b, 19 Dec 2016)Remarque: "
git diff --histogram
" avait une mauvaise utilisation de la mémoire de modèle, qui aété réorganisée afin de réduire l'utilisation de pointe, avec Git 2.19 (T3 2018).
Voir s'engager 79cb2eb, s'engager 64c4e8b, s'engager c671d4b, s'engager 2820985 (19 Juillet 2018) par Stefan Beller (
stefanbeller
).(Fusionnés par Junio C Hamano --
gitster
-- dans s'engager 57fbd8e, le 15 Août 2018)git config --global diff.algorithm histogram
est la commande à utiliser ce dernier s'engager pour la configuration de Git pour l'utilisation de l'histogramme par défaut.XDL_FAST_HASH
avoir à faire avec tout cela?