O que significa que 'patch inesperadamente termina no meio da linha' significa?

8

Esta é a saída do meu comando patch:

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.

O comando foi

patch -d ~/SOME_DIR -p1 --merge --verbose -u

O patch foi produzido usando o git:

git --git-dir ~/SOME_DIR/.git diff -U8 bb1ee538982957b421a4c0e78f30428e73c9a072 HEAD -- malloc.c

O que significa patch unexpectedly ends in middle of line e é um problema? Está se referindo ao pedaço 16 ou 17? O que posso procurar no arquivo de patch para descobrir o que está causando isso?

    
por Paul Biggar 30.08.2010 / 17:07

2 respostas

9

A mensagem refere-se ao Hunk 16.

Este debate sobre o GitHub provavelmente está relacionado ao seu problema.

É sobre o patch inesperadamente termina no meio da linha mensagens por causa de problemas CRLF (carriage-return, linefeed) quando diffs gerados pelo git são usados com patch.

Para citar a conclusão:

[..] git can be very picky about line endings. Are you on windows or not? At any rate, you should probably set autocrlf in the git config. If you're on windows, you want "true", if you're on mac or linux, you should use "input" [..]

No artigo Lidando com finais de linha O GitHub detalha a declaração acima.

    
por 30.08.2010 / 19:08
2

Se você não estiver usando git (o comentário do @maxslepzig foi sobre o uso do patch no contexto de git ), tente adicionar um retorno de carro no final do seu arquivo. Eu fiz isso e patch aceitou meu patch.

    
por 14.10.2015 / 11:27