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.patchonde
-
-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.patchonde
-
-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.