![Wie kann verhindert werden, dass der Patch Sicherungsdateien erstellt?](https://rvso.com/image/1302215/Wie%20kann%20verhindert%20werden%2C%20dass%20der%20Patch%20Sicherungsdateien%20erstellt%3F.png)
Ich schreibe Code, der das Programm patch(1) anwendet, und ich möchte es vollständig daran hindern, Sicherungsdateien zu erstellen. Das heißt, ich möchte nicht, dass es foo.orig
Dateien erstellt, wenn es entweder beim Aktualisieren einer bestimmten Datei fehlschlägt (in diesem Fall erstellt es eine foo.rej
Datei) oder wenn es eine Datei erfolgreich aktualisiert, aber Unklarheiten aufweist, was normalerweise der Fall ist. Das scheint leichter gesagt als getan zu sein.
Basisfall: Ich führe „Patch“ für ein Debian-Quellverzeichnis aus, aber die Aktualisierung der debian/changelog
Datei schlägt fehl. Patch erstellt eine Datei debian/changelog.orig
(was ich vermeiden möchte).
In der Dokumentation wird ein --no-backup-if-mismatch
Schalter erwähnt, der genau das zu sein scheint, was ich brauche. Aber wenn ich ihn hinzufüge, wird die Sicherungsdatei trotzdem erstellt, nur heißt sie jetzt debian/changelog.~1~
.
In der Dokumentation steht auch, dass bei --posix
Vorhandensein des Schalters keine Backups erstellt werden. Wenn ich diesen Schalter anstelle von verwende --no-backup-if-mismatch
, wird die Backup-Datei trotzdem erstellt, allerdings mit dem ursprünglichen .orig
Suffix.
Die einzige Problemumgehung, die ich gefunden habe, besteht darin, den -B/--prefix
Schalter zu verwenden, um Backups in ein Verzeichnis meiner Wahl zu schreiben. Aber das scheint ein hässlicher Hack zu sein. Gibt es keine sauberere Möglichkeit, Backups zu verhindern?
Antwort1
Offensichtlich -B/--prefix
ist das der einzige Weg.
Antwort2
Entsprechend(diffutils)Backups, --no-backup-if-mismatch
macht, was Sie wollen.
Antwort3
Erwägen Sie die Verwendung der undokumentierten --version-control none
Option. Diese Option istdokumentiert für die FreeBSD-Variante vonpatch
.