El algoritmo diff de paciencia es un algoritmo diff más lento que muestra mejores resultados en algunos casos.
Supongamos que tiene el siguiente archivo registrado en git:
.foo1 {
margin: 0;
}
.bar {
margin: 0;
}
Ahora reordenamos las secciones y agregamos una nueva línea:
.bar {
margin: 0;
}
.foo1 {
margin: 0;
color: green;
}
El algoritmo de diferencias predeterminado afirma que los encabezados de sección han cambiado:
$ git diff --diff-algorithm=myers
diff --git a/example.css b/example.css
index 7f1bd1e..6a64c6f 100755
--- a/example.css
+++ b/example.css
@@ -1,7 +1,8 @@
-.foo1 {
+.bar {
margin: 0;
}
-.bar {
+.foo1 {
margin: 0;
+ color: green;
}
Mientras que la diferencia de paciencia muestra un resultado que podría decirse que es más intuitivo:
$ git diff --diff-algorithm=patience
diff --git a/example.css b/example.css
index 7f1bd1e..6a64c6f 100755
--- a/example.css
+++ b/example.css
@@ -1,7 +1,8 @@
-.foo1 {
- margin: 0;
-}
-
.bar {
margin: 0;
}
+
+.foo1 {
+ margin: 0;
+ color: green;
+}
Aquí hay una buena discusión sobre la calidad subjetiva de diferencias , y git 2.11 está explorando aún más la heurística de diferencias .
Tenga en cuenta que el algoritmo de diferencia de paciencia todavía tiene algunos casos patológicos conocidos .