Este es el resultado de mi comando parche:
Hunk #11 merged at 4184,4190.
Hunk #12 merged at 4444.
Hunk #13 merged at 4944.
Hunk #14 NOT MERGED at 5106-5116.
Hunk #15 merged at 5290.
Hunk #16 merged at 5448.
patch unexpectedly ends in middle of line
Hunk #17 merged at 5608,5611.
El comando fue
patch -d ~/SOME_DIR -p1 --merge --verbose -u
El parche fue producido usando git:
git --git-dir ~/SOME_DIR/.git diff -U8 bb1ee538982957b421a4c0e78f30428e73c9a072 HEAD -- malloc.c
¿Qué patch unexpectedly ends in middle of line
significa, y es un problema? ¿Se refiere al trozo 16 o 17? ¿Qué puedo buscar en el archivo de parche para descubrir qué está causando esto?
fuente
Si no está utilizando
git
(el comentario de @ maxslepzig fue sobre el uso de parches en el contexto degit
), intente agregar un retorno de carro al final de su archivo. Lo hice ypatch
acepté mi parche.fuente
Para agregar a esta discusión muy antigua:
El problema que lleva a la advertencia que observó el OP generalmente es causado por problemas con las terminaciones de línea.
patch
desea un avance de línea final (LF) para determinar el final del archivo (y advierte de una diferencia unificada que puede haberse truncado accidentalmente)Agregue el salto de línea adecuado sin abrir el archivo para editarlo (lo que podría modificar sus finales de línea o eliminar líneas / espacios finales según la configuración de su editor), puede hacer algo simple como:
echo -e "\n" >> YOURPATCHFILE
Esto agrega un carácter de salto de línea al final del archivo sin realizar ningún otro cambio.
Si su archivo de parche ya es extraño o desea realizar varias correcciones posibles a la vez, puede corregir muchos problemas con la codificación (a ASCII), incluidas las terminaciones de línea (CR o CRLF a LF):
dos2unix -k YOURPATCHFILE
Puede que tenga que instalar el binario dos2unix desde el administrador de paquetes de su sistema operativo; es decir
sudo apt install dos2unix
sudo yum install dos2unix
brew install dos2unix
fuente