Como pegar o log das correções que aplicamos?

0

Então aqui está a minha pergunta: Eu recentemente baixei o patch do kernel do Linux 3.4.101 e apliquei este patch diretamente na base 3.4.0 com este comando:

$ cd /kernel source directory
$ gzip -cd ../path to patch/patch-3.4.101 | patch -p1

E eu tenho alguns pedaços falhados ... mas desde que o patch era muito grande eu não era capaz de analisar todos os pedaços e rejeições ... então aqui vai a minha pergunta principal:

Como posso obter o log completo desse processo de correção?

    
por Dhinesh Ravi 02.08.2014 / 10:22

1 resposta

1

Quando patch falha, ele salva o bit que falha em um arquivo .rej .

Como você já o executou, você já terá esses arquivos. Você pode encontrá-los com find . -name \*.rej .

Para obter um registro real, você deve enviar a saída e os erros de patch por meio de um pager, como less : gzip -dc patch.gz | patch -p1 2>&1 | less . patch não mantém nenhum log das partes do patch que foram aplicadas com sucesso, então não há como obter um log completo após patch já ter sido executado. É claro que, para que isso funcione, você precisa primeiro limpar seu diretório: ele não fornecerá resultados úteis se for executado pela segunda vez.

Note que, como mencionado nos comentários, neste caso em particular, o fato de você ter uma rejeição qualquer é um problema muito grande e você não deve tentar resolver conflitos manualmente: certifique-se de obter as versões exatas correspondentes do tarball e patch base. As versões exatas que você lista não mostram nenhum erro quando eu corro

rm -rf linux-3.4
tar xzvf ~/Downloads/linux-3.4.tar.gz
cd linux-3.4
gzip -dc ~/Downloads/patch-3.4.101.gz | patch -p1 2>&1 | less -S

mas isso me dá a saída de patch que você espera obter também.

    
por 02.08.2014 / 11:17