Patch-management
Sommige verbeteringen of uitbreidingen aan Drupal-modules (of andere Linux-code) worden ter beschikking gesteld als bestanden met de extensie .patch. Die moet je patchen tov. een bepaald origineel bestand. De aanpak is om locaal te patchen en het gepatchte bestand daarna te uploaden. Onder Ubuntu is dat allemaal een fluitje van een cent:
Installatie:
sudo apt-get install patch
Patchen:
patch hoofdbestand patchbestand
waarna het hoofdbestand wordt bijgewerkt.
Om welk bestand gaat het?
[1] Legt uit dat een patchbestand meerdere bestanden kan aanpassen. Je ziet 't aan de regels die met diff beginnen, bv.
diff --git a/feeds.info b/feeds.info
Het oorspronkelijke bestand zou a/feeds.info zijn, en het resulterende bestand b/feeds.info zijn. --git heeft vermoedelijk betrekking op bestanden afkomstig van Git
Toepassen op meerdere bestanden
Plaats de patch in de root van de betreffende module en probeer uit wat werkt. Voorbeelden:
patch < feeds.taxonomy_node_get_terms_fail_959984_82.patch
patch -p0 < feeds.taxonomy_node_get_terms_fail_959984_82.patch
patch -p1 < feeds.taxonomy_node_get_terms_fail_959984_82.patch
De optie -px geeft aan hoeveel prefixes weg te halen aan bestandsnamen. Dat is afhankelijk van de locatie, relatief tov. de te bewerken bestanden. Je merkt vanzelf wat het juiste aantal is.
Bronnen
- http://drupal.org/patch
- http://drupal.org/patch/apply
- http://drupal.org/node/707484 - Making a Drupal patch with Git
- http://www.markusbe.com/2009/12/how-to-read-a-patch-or-diff-and-understand-its-structure-to-apply-it-manually/
- http://drupal.org/node/216409 - how to apply patch on multiple files
- http://drupal.org/node/1054616#applying-patches - Advanced patch contributor guide - Meer over Git
- http://drupal.org/patch/reverse