patch - saber - tipo de archivo archivo
¿Cuál es el formato de un archivo de parche? (4)
Qué significa lo siguiente ?
diff -rBNu src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java
--- src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 2009-03-10 11:34:01.000000000 -0700
+++ src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 2009-03-10 14:11:55.000000000 -0700
@@ -4,9 +4,12 @@
+ int CJK = 21;
+ int DIGIT = 22;
int DEFAULT = 0;
String[] tokenImage = {
"<EOF>",
+ "/"OR/"",
"<WORD>",
"<ACRONYM>",
"<SIGRAM>",
@@ -39,6 +42,8 @@
"/"///"/"",
"/":/"",
"/"//"",
+ "/"(/"",
+ "/")/"",
"/"./"",
"/"@/"",
"/"///'/"",
El nombre del archivo antiguo
--- src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 2009-03-10 11:34:01.000000000 -0700
El nuevo nombre del archivo
+++ src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 2009-03-10 14:11:55.000000000 -0700
-
-4
: el fragmento comienza en la línea 4 en el archivo antiguo (incluidas las líneas de contexto); -
9
: número de líneas en el fragmento en el archivo antiguo, incluidas las líneas de contexto (así que el total de líneas que tienen un-
o nada delante de ellas); -
+4
: el fragmento comienza en la línea 4 en el nuevo archivo; -
12
: número de líneas en el fragmento en el archivo nuevo, incluidas las líneas de contexto (por lo tanto, el total de líneas que tienen un+
o nada delante).
Aviso : Cambié la diferencia para incluir una línea modificada, por lo que una línea eliminada seguida de una línea agregada.
@@ -4,9 +4,12 @@
+ int CJK = 21;
+ int DIGIT = 22;
- int DEFAULT = 0;
+ int DEFAULT = 42;
String[] tokenImage = {
"<EOF>",
+ "/"OR/"",
"<WORD>",
"<ACRONYM>",
"<SIGRAM>",
Igual que el anterior, pero observe que el fragmento en el nuevo archivo comienza 3 líneas más porque el fragmento anterior agregó un valor neto de 3 líneas.
@@ -39,6 +42,8 @@
"/"///"/"",
"/":/"",
"/"//"",
+ "/"(/"",
+ "/")/"",
"/"./"",
"/"@/"",
"/"///'/"",
Eso depende de lo que estés preguntando. Diff te muestra las diferencias entre dos archivos. En su caso, está diferenciando NutchAnalysisConstants.java
de dos lugares diferentes y está generando información sobre esas diferencias.
-r
a diff significa "diff recursivo", aunque en este caso no hace nada, ya que estás diferenciando los archivos, no los directorios.
-B
significa ignorar los cambios que solo involucran líneas en blanco.
-N
significa que si en el directorio1 tengo un archivo, pero no está presente en el directorio2, diff debe tratarlo como si el archivo estuviera presente pero vacío en el directorio2 (por lo tanto, le proporciona el contenido completo del archivo en el directorio1).
-u
significa usar el formato de salida unificado, que solo es compatible con el parche GNU diff y GNU.
En cuanto a lo que significa la salida, este link puede ser útil para usted.
La opción -u
que usaste especifica el formato unificado. En ese formato, las dos primeras líneas son un encabezado: ---
es el archivo original, +++
es el nuevo archivo y las marcas de tiempo.
@@
bloque de encabezados
Luego siguen los fragmentos (cambios de trozos) que comienzan con la sintaxis @@ -R,r +R,r @@
.
Esos son dos rangos, el que tiene la -
es el rango para el fragmento en el archivo original y el que tiene el +
el rango en el nuevo archivo. La R
designa el número de línea donde se inicia la operación diff.
Los números después de la coma son el número de líneas afectadas en cada archivo .
- Cada vez que elimine una línea, el número
+r
será menor que-r
. - Cada vez que agregue una línea, el número
+r
será mayor que-r
- Cambiar una línea agregará
0
al número+r
. (mismo alcance de líneas)
Trozos de líneas de código
Dentro de estos trozos, las líneas se identifican como adiciones o eliminaciones -
significa eliminar, +
significa adición. Las líneas que no cambiaron en ese fragmento no tendrán ni +
ni -
frente.
En su ejemplo, significa que hay dos fragmentos, o secciones, que cambiaron entre los dos archivos y las líneas con +
en él se agregaron los nuevos, no se eliminó nada.
Puede encontrar mucha más información sobre la sintaxis haciendo una búsqueda en google para diff unificado.
Los caracteres +
significan que esas líneas se agregaron desde la última versión de NutchAnalysisConstants.java
. La línea @@
le dice que la diferencia ha saltado a otra sección del archivo, en este caso, la línea 39 en el original, o la línea 43 en la nueva.