Intento hacer un parche como se presentó aquí .
Digamos que tengo dos directorys, pp1(modified version)
y pp0(clean version)
, hago un parche de file pp0.patch
con el command diff
:
diff -crB pp0 pp1 > pp0.patch
El problema es si hay un file solo en pp1, no se includeá en el parche. ¿Cómo solucionarlo?
ACTUALIZAR :
Primero cambio al directory de pp0 y pruebo si el parche tendrá éxito
patch --dry-run -p1 -i /path-to-pp0.patch
Aunque he agregado --new-file
al command diff
, aquellos solo en pp1
no están listdos en el resultado
ACTUALIZAR :
He parchado accidentalmente el file incorrecto
diff -crb --new-file pp1 pp0 > pp0.patch
o
diff -crNb pp1 pp0 > pp0.patch
va a hacer
Debería poder hacer esto usando el --new-file
. Tomado de la página de diff man :
--new-file In directory comparison, if a file is found in only one direc- tory, treat it as present but empty in the other directory.
Prueba esto:
diff -crB --new-file pp0 pp1 > pp0.patch
La respuesta inmediata: diff -N
, según lo explica pootzko . Encontrará que muchos parches creados por diff -urN
.
Qué puede mejorar tu vida: comienza a usar una herramienta de control de versiones. Si no conoce ninguno, comience con uno de los tres principales sistemas de control de revisiones distribuidas , Bazaar , Git o Mercurial . Verifique la versión limpia, trabaje, revise su trabajo tantas veces como quiera, y solicite a su sistema de control de versiones una diferencia entre la versión limpia y su trabajo.