Como evitar que o patch crie arquivos de backup?

Como evitar que o patch crie arquivos de backup?

Estou escrevendo um código que aplicará o programa patch(1) e quero impedir completamente que ele crie arquivos de backup. Ou seja, não quero que ele crie foo.origarquivos quando ele falha ao atualizar um arquivo específico (nesse caso, ele cria um foo.rejarquivo) ou quando atualiza um arquivo com êxito, mas há alguma imprecisão envolvida, o que normalmente ocorre . Parece ser mais fácil falar do que fazer.

Caso base: executo o "patch" em um diretório de origem do Debian e ele não consegue atualizar o debian/changelogarquivo. patch cria um arquivo file debian/changelog.orig(que é o que estou tentando evitar).

A documentação menciona uma --no-backup-if-mismatchopção, que parece ser exatamente o que eu preciso. Mas quando eu adiciono, o arquivo de backup ainda é criado, só que agora se chama debian/changelog.~1~.

A documentação também diz que quando o --posixswitch estiver presente, os backups não serão feitos. Quando uso essa opção no lugar de , o arquivo de backup ainda é criado, mas com o sufixo --no-backup-if-mismatchoriginal ..orig

A única solução alternativa que encontrei é usar a -B/--prefixopção para direcionar os backups para serem gravados em um diretório de minha escolha. Mas isso parece um hack feio. Não existe uma maneira mais limpa de evitar backups?

Responder1

Aparentemente -B/--prefixé o único caminho a percorrer.

Responder2

De acordo com(diffutils)Backups, --no-backup-if-mismatchfaz o que você quer.

Responder3

Considere usar a --version-control noneopção não documentada. Essa opção édocumentado para a variante FreeBSD dopatch.

informação relacionada