Infelizmente, o% normal diff
do GNU diffutils não suporta mudanças como b
(remove arquivos vazios). O makepatch pode ser útil para essa situação. Está disponível como um pacote no Debian / Ubuntu.
Depois de executar estes 4 comandos, o diretório "a" tem o arquivo "1" com o conteúdo "test" e o arquivo "2" que está vazio, e o diretório "b" está vazio.
$ mkdir a
$ mkdir b
$ echo test > a/1
$ touch a/2
Podemos correr
$ diff -r a b
Only in a: 1
Only in a: 2
O que não é útil para um patch. Ou podemos correr
$ diff -rN a b
diff -rN a/1 b/1
1d0
< test
O que é ótimo para o arquivo "1" porque vemos seu conteúdo, mas agora o arquivo "2" desapareceu. Isso ocorre porque o -N
sinalizador significa "tratar arquivos ausentes como vazios", então presumo que o diff não pode ver a diferença entre o arquivo vazio "a / 2" e o arquivo vazio (fingir, já que realmente vazio) "b / 2 ".
Existe uma maneira de mostrar ao diff, em uma execução, que um novo arquivo vazio foi criado e o conteúdo de um novo arquivo não vazio - em um formato que o patch possa usar?
Ou, isso exigiria uma nova opção para diferenciar?
Tags diff