237 votes

Qu'est-ce que `git diff --patience` pour?

Comment l'algorithme de patience diffère-t-il de l'algorithme par défaut git diff , et quand voudrais-je l'utiliser?

197voto

Mark Rushakoff Points 97350

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.

58voto

robinst Points 9249

Vous pouvez également l'utiliser pour les fusions (cela fonctionne très bien ici pour certains conflits XML):

 git merge --strategy-option=patience ...
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X