Die Mathe-Redaktion - 15.11.2019 08:07 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 600 Gäste und 7 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Linux: Erstellen eines Patch-Files
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Linux: Erstellen eines Patch-Files
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 159
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-10-11


Ich habe auf meinem ubuntu-Rechner über den diff-command zwei config-Dateien miteinander verglichen und den Unterschied in eine patch-File geschrieben.

Nennen wir diese Dateien:

- File1.cfg
- File1_edited.cfg

Diese patch-Files dürften nun auch für ein neueres Release meiner Software gültig sein, auf die ich sie gerne anwenden möchte. Will heißen: Ich habe diese Änderungen für das Release 2018 angewandt. Die config-Dateien des neueren Releases 2019 haben sich aber nicht geändert. Ich möchte nun also dieses patch auf die File1.cfg des neueren Releases anwenden.
Hier ist ein Auszug des originalen Patch-Files:
patch
diff -u Release-2018/config/File1.cfg Release-2018/config/File1_edited.cfg
--- Release-2018/config/File1.cfg  2019-10-11 13:03:29.807102913 +0200
+++ Release-2018/config/File1_edited.cfg  2019-10-11 13:38:25.447322569 +0200
@@ -4,8 +4,10 @@
 
...

Wenn ich nun diese Patch-File auf mein 2019 Release anwenden möchte, müsste ich die Datei dann folgendermaßen ändern?
patch
diff -u Release-2019/config/File1.cfg Release-2019/config/File1_edited.cfg
--- Release-2019/config/File1.cfg  
+++ Release-2019/config/File1_edited.cfg  
@@ -4,8 +4,10 @@
 
...

Bedenkt dabei bitte folgendes: Die Datei File1_edited des Release 2019 gibt es noch nicht! Ich möchte sie aus File1.cfg des Release 2019 erstellen, indem ich folgenden command aufrufe:
bash
cd /root/Release-2019/patches/
patch -p0 -i myPatch.patch

Hierbei ist es so: Release-2019 und Release-2018 sind directories in /root. Die patch-File myPatch.patch habe ich in /root/Release-2019/patches gespeichert. Da nun in myPatch.patch über --- der Pfad des Files angegeben ist, das ich ändern möchte, dürfte es passen, oder?

Die Timestamps habe ich gelöscht. Keine Ahnung, ob das relevant ist.


..Ich habe Schwierigkeiten genau zu verstehen, woher patch weiß welches File es ändern soll. Kann mir das jemand erklären?
Außerdem: wird nun über dieses patch auch File1_edited.cfg des Release 2019 erstellt? Oder wird lediglich File1.cfg des Release 2019 geändert? In dem Fall ist die Zeile mit dem +++ doch irrelevant, oder?







  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 159
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, vom Themenstarter, eingetragen 2019-10-12


Ich habe meine Frage jetzt etwas editiert, um sie verständlicher klingen zu lassen. Ich hoffe das hat mein Edit auch bewirkt und es findet sich jemand, der / die so etwas schon einmal gemacht hat?



  Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 717
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2019-10-12


Normalerweise wird patch eingesetzt, um eine bereits vorhandene Datei an Ort und Stelle zu verändern. Optional kann die ursprüngliche Version der Datei vorher als Backup gesichert werden.

Wenn du stattdessen die urspüngliche Datei behalten und die veränderte Version in eine neue Datei schreiben willst, musst du das patch über die Option -o bzw. --output= mitteilen:
bash
cd /root/Release-2019
patch -o config/File1_edited.cfg -p1 < patches/myPatch.patch

Du solltest dir aber überlegen, ob das wirklich ein sinnvoller Workflow ist oder ob du nicht lieber File1.cfg veränderst und die ursprüngliche Version als File1.cfg.orig sicherst:
bash
cd /root/Release-2019
patch -b -p1 < patches/myPatch.patch 

An deinem patch-File herumeditieren musst du in beiden Varianten nicht.

Über so etwas wie die Existenz der output-Option informiert dich übrigens die man-Seite zu patch. Hast du dir die schon mal angesehen?

--zippy



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 159
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2019-10-13


hey zippy,

danke für deine Hilfe!

Ich kenne die -o Option von patch. Ich denke, das eigentliche Verständnisproblem, das ich gehabt habe, ist die Funktion von -p. Wenn ich es richtig verstanden habe, öffnet patch also die Patch-Datei und schaut sich den Pfad hinter --- an. Dies ist also der Pfad zur Datei, die geupdated werden soll. Und mit -p[num] informiere ich patch über die Anzahl an Slashes, die zu ignorieren sind.

Wenn hier also root/Release-2018/config/File1.cfg steht, und ich über -p2 angebe, dass die ersten beiden Slashes zu ignorieren sind, sucht patch in dem Ordner, in dem es ausgeführt wird nach /config/File1.cfg.

Okay. Nochmals vielen Dank!



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7 hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]