Dies ist der Befehls-Patcher, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
Patcher – ein Patch-Wartungstool
ZUSAMMENFASSUNG
Patcher [-n ] [ ]
Bearbeiten als Teil des Patches .
patcher -r Aktuellen Patch aktualisieren.
patcher [-f] -b Einen Patch zum vorherigen zurückbewegen.
Patcher [-f] -b
Gehen Sie in der Reihe zurück, bis wir am Ziel sind .
Patcher [-f] -b
Zurückgehen Patches in Serie.
patcher -a Den nächsten Patch in der Serie anwenden.
Patcher -a Wenden Sie alle Patches aus der Serie an, bis wir erreicht sind .
Patcher -a Bewerben Sie sich als nächstes Patches aus der Serie.
Patcher -n [-P ] -ich
Importieren Sie eine externe Diff-Datei in Patch . Streifen Ebenen
aus den Verzeichnisnamen. Bitte beachten Sie, dass der Patch „-p1“ zulässt, aber wir
nur '-p 1'.
Patcher [-f] [-n ] [-P ] -ich
Importieren Sie eine externe Diff-Datei in Patch . Streifen Ebenen
aus den Verzeichnisnamen. Bitte beachten Sie, dass der Patch „-p1“ zulässt, aber wir
nur '-p 1'.
CONCEPT
Patcher ist ein Perl-Skript, das ich zum Verwalten von Patches verwende. Es ist ziemlich kraftvoll und einfach zu bedienen
verwenden, und zwar schnell.
Patcher verfolgt, welche Dateien Sie ändern. Es kann dann Patches von Ihrem generieren
Wenn Sie Änderungen vornehmen, müssen Sie das Diff-Tool nicht manuell bedienen.
Sie können mehr als einen Datensatz mit Dateiänderungen haben. Wir nennen dies einen Patch. Ein Patch ist
etwas, das die Flicken(1) Befehl kann angewendet werden.
Die Patches können in Reihe gestapelt werden, sie legen die Reihenfolge fest, in der sie angewendet werden müssen. Patcher
speichert Serieninformationen sowie Informationen darüber, welche Patches angewendet wurden und welche
nicht.
BESCHREIBUNG
Später werden wir eine exemplarische Vorgehensweise geben, aber lassen Sie mich zunächst die grundlegenden Betriebsmodi von erklären
Patcher:
Bearbeitung Dateien
Wenn Sie Patcher mit einem Dateinamen aufrufen, erstellt Patch eine Sicherungskopie dieser Datei (falls die Datei
existiert). Jetzt können Sie die Datei erstellen oder ändern. Später können Sie den Patcher bitten, einen zu erstellen
einheitliches Diff mit all Ihren Änderungen.
Erstellen einheitlich Unterschiede
Rufen Sie einfach „patcher -r“ auf und Sie erhalten einen einheitlichen Vergleich aller Ihrer Ergänzungen und Änderungen
und Löschungen. Der Unterschied wird in .patches/ gespeichert. .patch. Es ist in einer Form, die
ermöglicht die direkte Anwendung über Flicken(1) oder natürlich über „patcher -i“.
Wann immer Sie „patcher -r“ ausführen, werden Ihre .patches/ Die .patch-Datei wird aktualisiert.
Zurück a Flicken
Um Ihre Änderungen zu widerrufen und zur vorherigen Version zu wechseln, geben Sie einfach „patcher -b“ ein. Patcher
stellt sicher, dass Sie Ihre Änderungen nicht verlieren, indem Sie aufgefordert werden, ein Diff-If zu erstellen
Seit der letzten Aktualisierung hat sich etwas geändert. Sie können dazu den Patcher -f (oder --force) verwenden
jedenfalls zurück.
Sie können mehr als einen Patch zurücksetzen, indem Sie entweder eine Nummer oder einen Patchnamen nach -b angeben.
Erneut bewerben a Flicken
Mit „patcher -n -a“ kann man einen bereits vorhandenen verwalteten Patch anwenden. A
Ein verwalteter Patch ist ein Patch, der bereits im Verzeichnis .patches gespeichert ist und erwähnt wird
in der .patches/series-Datei. Patcher testet, ob der Patch problemlos angewendet werden kann
wendet es an. Wenn der Patch abgelehnt würde, können Sie den Patch mit -f (oder --force) anwenden
egyébként.
Sie können mehr als einen Patch anwenden, indem Sie entweder eine Nummer oder einen Patchnamen nach -a angeben.
Einfuhr extern schlafpflasters
Manchmal gibt es einen externen Patch. Das ist das Gegenteil eines verwalteten Patches, nämlich der Patch
nicht im .patches-Verzeichnis gespeichert. Durch den Import wird es zu einem verwalteten Patch.
Importieren Sie den Patch einfach mit -i . Sie können -p verwenden um das Verzeichnis anzugeben
Ebene, ähnlich dem -p Option von Flicken(1). Aber bitte bedenken Sie, dass wir eine benötigen
Leerzeichen zwischen -p und der Zahl.
Normalerweise werden nur saubere Patches importiert. Um einen Patch zu importieren, der Ausschuss erzeugt, verwenden Sie
-f (oder --force). Sie sehen eine Liste der Dateien, bei denen der Patch nicht ordnungsgemäß angewendet wurde. Beheben Sie das Problem
Probleme manuell beheben.
Später können Sie mit „patcher -r“ einen sauberen Patch erstellen.
INSTALLATION
Platzieren Sie den Patcher einfach irgendwo in Ihrem Weg. Das ist alles.
Für jedes Projekt benötigt Patcher ein spezielles Verzeichnis namens „.patches“. Es wird
Suchen Sie nach diesem Verzeichnis. Wenn es nicht vorhanden ist, erstellt Patcher es automatisch.
INTERN
Die gesamte Arbeit erfolgt mit einem einzigen Verzeichnisbaum. Alle Befehle werden im Stammverzeichnis von aufgerufen
dieser Baum (TODO: das kann und sollte sich ändern). Patcher verwaltet einen „Stapel“ von Patches.
Jeder Patch ist ein Änderungssatz für den Basisbaum plus die vorhergehenden Patches.
Alle Patches werden der Reihe nach in der Datei „.patches/series“ aufgelistet. Patcher fügt Patches hinzu
diese Datei, löscht jedoch niemals Einträge. Sie können diese Datei jedoch mit einem Texteditor bearbeiten
Bitte tun Sie dies nur, wenn der von Ihnen gelöschte Patch derzeit nicht angewendet wird.
Alle aktuell angewendeten Patches werden in der Datei „.patches/applied“ aufgeführt. Der Patcher schafft es
Wenn Sie diese Datei nicht manuell bearbeiten möchten, ist es nicht erforderlich, dass Sie sie jemals manuell bearbeiten.
Jeder Patch betrifft eine Reihe von Dateien im Baum. Diese Dateien werden in einer Dateiliste aufgelistet
mit dem Namen „.patches/*.files“. Patcher verwaltet sie. Wenn Sie einen Patch zurücksetzen, wird diese Datei gelöscht
gelöscht. Mit anderen Worten: Diese Datei existiert nur für angewendete Patches. Es wird nur von verwendet
„Patcher -r“.
Patches werden in „.patches/*.patch“-Dateien abgelegt. Es handelt sich immer um einheitliche Diffs mit -p1
als Patchlevel. Sie können das dann überall hin kopieren Flicken(1) Das Dienstprogramm liest sie ohne
Probleme.
Optional können Sie Beschreibungen für die Patches in Dateien mit dem Namen „.patches/*.txt“ ablegen.
Für einen bestimmten Patch „mein-erster-Patch“ wird also Folgendes vorhanden sein:
- Ein Eintrag „my-first-patch.patch“ in „.patches/series“.
- Ein Eintrag „my-first-patch“ in „.patches/applied“ (falls aktuell angewendet)
- Eine Datei „.patches/my-first-patch.files“, die die Namen der Dateien enthält, die mein-
First-Patch ändert, fügt hinzu oder entfernt
- Eine Datei „.patches/my-first-patch.patch“, die den Kontextunterschied darstellt, im Grunde die Hauptdatei
Ausgabe des Patchers.
- Optional eine Datei „.patches/my-first-patch.txt“, die das Changelog des Patches enthält,
Beschreibung oder was auch immer Sie dort eingeben.
KOMPLETTE DURCHFÜHRUNG
Lasst uns beginnen.
Gehen Sie nach /usr/src/linux (oder wo auch immer).
Beginnen wir nun mit der Änderung einiger Quelldateien:
patcher -n my-patch kernel/sched.c
OK, der Patcher hat für Sie kernel/sched.c nach kernel/sched.c~my-patch kopiert, das Programm auch
Ich habe etwas Magie im .patches-Verzeichnis vorgenommen, was für uns jetzt nicht von Interesse sein wird.
Bearbeiten Sie nun das Kernel/sched.ca-Bit.
Jetzt sind wir bereit, den Patch zu dokumentieren:
Erstellen Sie .patches/my-patch.txt
Generieren Sie nun einen Patch:
Patcher -r
Dadurch wird „.patches/my-patch.patch“ generiert. Schauen Sie sich diese Datei an.
Jetzt entfernen wir unsere Änderung an sched.c, indem wir rückwärts gehen:
Patcher -b
Schauen Sie sich an, wo wir jetzt sind:
patcher -s
Fügen wir nun eine weitere Datei zu my-patch hinzu. Zuerst wenden wir den Patch erneut an:
Patcher -a
Bearbeiten Sie nun eine zweite Datei:
Patcher kernel/printk.c
Beachten Sie, dass wir dem Patcher hier ein einziges Argument ohne Befehlszeilenoptionen gegeben haben. Das
Weist den Patcher immer an, dem aktuellen Patch eine weitere Datei hinzuzufügen.
Bearbeiten Sie kernel/printk.c
Meinen Patch aktualisieren:
Patcher -r
Starten Sie nun einen zweiten Patch:
patcher -n my-second-patch kernel/sched.c
Hier haben wir einen Dateinamen in der Befehlszeile für Patcher, also bearbeiten wir eine Datei. Aber jetzt wir
hat mit -n einen Patch-Namen angegeben. Dadurch wurde der Patcher angewiesen, einen neuen Patch zu erstellen. Jetzt Patcher
verwaltet zwei Patches, „my-patch“ und „my-second-patch“.
Bearbeiten Sie kernel/sched.c, um einige Änderungen für meinen zweiten Patch vorzunehmen
Generiere meinen zweiten Patch:
Patcher -r
Werfen Sie einen Blick in „.patches/my-second-patch.patch“.
Beachten Sie außerdem, dass „my-second-patch.patch“ zur Seriendatei hinzugefügt wurde. Wann immer du
Wenn Sie einen Patch manuell starten, wird er automatisch in die Seriendatei eingefügt.
Dadurch ist das Ganze stapelbar. Wenn Sie beispielsweise vier Patches angewendet haben
„Patch-1“, „Patch-2“, „Patch-3“ und „Patch-4“ und wenn sich Patch-2 und Patch-4 beide berühren
kernel/sched.c dann haben Sie:
kernel/sched.c~patch-2 Originalkopie, vor Patch-2
kernel/sched.c~patch-4 Vor Patch-4 kopieren. Enthält Änderungen von Patch-2
kernel/sched.c Aktuelle Arbeitskopie. Enthält Änderungen von Patch-4.
Das bedeutet, dass Ihre Diff-Header „~patch-name“ enthalten, was praktisch ist
Dokumentation.
Zum Abschluss unserer Tour entfernen wir beide Patches:
Patcher -b
Patcher -b
Das ist eigentlich so ziemlich alles.
Verwenden Sie Patcher online über die Dienste von onworks.net