Sim, esta é uma boa maneira de criar um patch.
Resumindo:
-
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
-
-
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.