2009-10-20 16 views

Respuesta

17

Los parches, que git diff rendimientos, se procesan correctamente con la herramienta patch.

patch omite toda la información adicional git se agrega al archivo de parche. Para aplicar el parche, lo más probable es que necesite la opción -p1.

+0

Gracias. Lo probaré, supongo que necesito más café ... –

+2

Los parches generados por 'git format-patch' también se procesan correctamente con el parche GNU ... a menos que se generen con la opción -M/-C y contengan información sobre los cambios de nombre , etc. –

+2

En la página de comando man 'patch':" el parche intenta omitir cualquier basura inicial, aplicar el diff y luego omitir cualquier basura arrastrada ". Lo más importante en git diffs es la adición de modelos (por ejemplo, "índice ...", "cambiar el nombre ...", "nuevo archivo ...") y el parche simplemente puede omitir estos. Git también prefije los nombres de archivos, p. "a/ruta/a/archivo", pero esto se puede omitir con el parche -p1. – Cascabel

1

Los estados respuesta aceptada la siguientes:

Patches, que los rendimientos de git diff, se procesan correctamente por la herramienta de parche.

Estoy bastante seguro de que acabo de encontrarme con un caso en el que esto es incorrecto. /usr/bin/patch simplemente silenciosamente (sin informar un error) ignoré mi parche, incluida la información de cambio de nombre del archivo, rompiendo así una implementación (afortunadamente solo estoy probando la implementación en este momento :-) ...

Estoy publicando esta respuesta alternativa como una advertencia para otras personas que tienen el mismo problema porque me estaba rascando la cabeza por un tiempo ... También parece que los comentarios sobre las respuestas en StackOverflow no pueden contener comillas.

Irónicamente, acabo de cambiar al formato unificado de diferencias para superar este problema y ahora mi implementación se rompe de una manera diferente porque los difs unificados no pueden representar la creación de archivos vacíos (por ejemplo, __init__.py). ¡Habla de estar entre una roca y un lugar difícil!

Cuestiones relacionadas