Esta é uma boa maneira de criar um patch?

11

Eu gostaria de criar um patch a partir de uma ramificação gcc específica, comparando-o com os lançamentos oficiais; Então, quando eu descompactar o tarball da versão estável, posso aplicar o patch e obter o equivalente do que estava naquele ramo específico.

É a primeira vez que eu preciso criar um patch, então é minha primeira vez fazendo isso e minha principal preocupação é acertar as opções e a análise, já que estamos falando de um software extremamente importante

diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch

Isso é suficiente e a melhor maneira de fazer isso?

    
por user2485710 14.10.2014 / 23:41

1 resposta

14

Sim, esta é uma boa maneira de criar um patch.

Resumindo:

  1. Para criar um patch para um único arquivo, seu comando pode parecer

    diff -Naru file_original file_updated > file.patch

    onde

    • -N : trata arquivos ausentes como vazios
    • -a : trata todos os arquivos como texto
    • -r : comparar recursivamente quaisquer subdiretórios encontrados
    • -u : saída NUM (padrão 3) linhas de contexto unificado
  2. Para criar um patch para o diretório inteiro:

    diff -crB dir_original dir_updated > dfile.patch

    onde

    • -c : saída NUM (padrão 3) linhas de contexto copiado
    • -r : comparar recursivamente quaisquer subdiretórios
    • -B : ignore as alterações cujas linhas estão todas em branco

Afinal, para aplicar este patch, é possível executar

patch -p1 --dry-run < dfile.patch

onde o switch p instrui o patch a remover o prefixo do caminho para que os arquivos sejam identificados corretamente. Na maioria dos casos, deve ser 1 .

Remova --dry-run se estiver satisfeito com o resultado impresso na tela.

    
por 15.10.2014 / 02:02

Tags