2011-04-11 15 views
12

Sé que para crear un parche para un archivo existente es fácil:¿Cómo crear un parche para un nuevo archivo?

diff -aru oldFile newFile 2>&1 | tee myPatch.patch

¿Pero qué hacer, si quiero crear un parche para un totalmente nuevo archivo? Supongamos que mi archivo reside en una carpeta llamada TestDir. Anteriormente, TestDir no tenía un archivo llamado entirelyNewfile.c, pero ahora tiene el mismo.

Cómo crear un parche para entirelyNewfile.c? La idea es que el parche se aplique correctamente a las especificaciones y genere la construcción de RPM. Con BUILD dir teniendo este nuevo archivo.

Solo para agregar: si trato de tomar diff entre los dos directorios, uno teniendo el nuevo archivo y el otro faltando, para crear el parche, genera un error diciendo que el archivo solo está presente en una carpeta

Respuesta

14

Agregue -N al diff argumentos.

+0

Muchas gracias. Pero, ¿cómo editarlos? --- Olddir/testUsecase2.cc 1970-01-01 05: 30: 00.000000000 +0530 +++ NewDir/testUsecase2.cc 2011-04-11 20: 39: 56.000000000 +0530 – kingsmasher1

+0

Si estos no están formateados correctamente, estos a menudo deja rechazar archivos durante las compilaciones de RPM. – kingsmasher1

0

La forma más fácil de hacer esto que yo sé es poner todos los archivos bajo control de versión (si no lo están). Yo prefiero Git, pero algo similar podría hacerse en cualquier otro sistema de control de versiones:

git init 
git add . 
git commit -m "initial state" 
<do your edits here> 
git add . 
git commit -m "new state" 
git diff HEAD^1 
+0

Pero, ¿cómo creará compilaciones RPM a partir de ahí? La compilación de RPM requiere que se agreguen parches individuales al archivo SPEC. – kingsmasher1

+0

El paso "git diff" producirá un parche que se puede guardar en un archivo y luego agregar como fuente a su archivo RPM .spec. – jcollie

4
diff /dev/null <newfile> 

creará un parche para su nuevofichero.

Cuestiones relacionadas