Comment l'algorithme de patience diffère-t-il de l'algorithme par défaut git diff
, et quand voudrais-je l'utiliser?
Réponses
Trop de publicités?Vous pouvez lire un post de Bram Cohen, l'auteur de la patience algorithme de comparaison, mais j'ai trouvé ce blog pour résumer la patience algorithme de comparaison très bien:
La Patience Diff, au lieu de cela, concentre son énergie sur la basse-fréquence de haute-contenu des lignes qui servent de marqueurs ou des signatures de contenu important dans le texte. C'est encore un LCS à base de diff à la base, mais avec une différence importante, car elle ne considère que la plus longue sous-suite commune de les lignes de la signature:
Trouver toutes les lignes qui apparaissent exactement une fois sur deux côtés, puis de faire de la plus longue sous-suite commune sur ces lignes, correspondance.
Quand devriez-vous utiliser patience diff? Selon Bram, de la patience diff est bon pour cette situation:
Le très mauvais cas sont ceux où les deux versions ont divergé de façon spectaculaire, et le développeur n'est pas prudent de garder patch tailles sous contrôle. Dans ces conditions, un algorithme de comparaison peuvent de temps en temps devenir "alignées" en ce qu'elle correspond à de longues sections des accolades ensemble, mais il enroule une corrélation entre les accolades de fonctions dans une version avec les accolades de la prochaine fonction plus tard dans la autre version. Cette situation est très laid, et peut entraîner une totalement inutilisable dossier du conflit dans la situation où vous avez besoin de telles choses pour être présenté de manière cohérente les plus.