Hintergrund: das grundlegende Konzept von diff und patch
diff erstellt Patches
In einfachen Worten gesprochen: der Befehl diff
wird verwendet, um Unterschiede zwischen Versionen einer Datei zu vergleichen. Das Ergebnis wird Patch genannt und üblicherweise (vom Nutzer) als ".patch"-Datei gespeichert.
Dieser Patch kann mit dem Befehl patch
auf andere Kopien der "alten" Datei angewendet werden, um auf diese Weise die "alten" Dateien auf den Stand der "neuen" Datei zu bringen.
Für mehr Informationen zum Anwenden von Patches, bitte HOW TO: Apply patches (englisch) lesen.
Warum diff verwenden?
Wann sollte man diff
zum Erstellen von Patches verwenden? Angenommen, ein Modul wird geändert um einen Fehler zu beheben und eine geänderte Version des Moduls wurde gespeichert. Wie sollen die Änderungen jetzt allen anderen Nutzern zugänglich gemacht werden? Einfach die geänderte Version zu verteilen, muss nicht unbedingt funktionieren, da jemand Anderes ebenfalls Änderungen (an anderer Stelle) vorgenommen haben kann und diese Änderungen dann überschrieben werden würden.
Anstelle dessen wird nun diff
auf die beiden Dateien angewendet und der so erstellt Patch hochgeladen. Andere können diesen nun auf ihre Dateien mit Hilfe des Befehls patch
anwenden. (Genauso können Patches auf die eigenen Dateien angewendet werden, ohne selbst gemachte Änderungen zu verlieren.)
Der Vorteil dieser Arbeitsweise ist das Änderungen am Quelltext leicht verfolgt werden können — und rückgängig gemacht werden, falls das nötig werden sollte —. Dies ist bei solch einem Gemeinschaftsprojekt wie Drupal essentiell.
die Tools
Die Möglichkeit, Patches zu erstellen mittels diff
— und Patches mittels patch
anzuwenden — ist bereits in den meisten Betriebssystemen vorhanden. Einfach die Links auf http://drupal.org/patch durchstöbern und mehr über diese mächtigen, aber ebenso einfachen Befehle lernen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 17 Stunden 52 Minuten
vor 1 Tag 13 Stunden
vor 1 Tag 15 Stunden
vor 1 Tag 19 Stunden
vor 2 Tagen 8 Stunden
vor 2 Tagen 9 Stunden
vor 2 Tagen 19 Stunden
vor 3 Tagen 8 Stunden
vor 3 Tagen 10 Stunden
vor 3 Tagen 11 Stunden