Meer informatie over de patch-bestanden

From Joomla! Documentation

This page is a translated version of the page Learn more about patch files and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎Nederlands
Copyedit.png
This Article Needs Your Help

This article is tagged because it NEEDS REVIEW. You can help the Joomla! Documentation Wiki by contributing to it.
More pages that need help similar to this one are here. NOTE-If you feel the need is satistified, please remove this notice.


Test deze patch, maak een patch, hoor je wanneer je een probleem rapporteert of wanneer je aan bugs werkt. Wat is een patch precies?

Een patch is een bestand dat precies aangeeft welke regels in welke bestanden gewijzigd moeten worden.

Dit is bijvoorbeeld een patch voor het probleem 11345 die een eenvoudige typefout corrigeert.

Index: plugins/authentication/gmail.php
===================================================================
--- plugins/authentication/gmail.php (revision 10386)
+++ plugins/authentication/gmail.php (working copy)
@@ -87,7 +87,7 @@
 }
 }
 else {
- $message = 'curl isn\'t insalled';
+ $message = 'curl isn\'t installed';
 } 
 if ($success)

Nader bekeken zien we dat de patch altijd begint met de naam van het gewijzigde bestand relatief aan de Joomla root. In dit geval is het het bestand gmail.php in de plugins/authentication map.

Vervolgens zien we de bestandsnaam weer in twee regels. Het getal in de eerste regel staat voor de versie van de codebasis of build waarop de patch is gemaakt. De working copy is de kopie die gewijzigd is. Wat betekent build? Telkens als er een wijziging wordt aangebracht aan de codebasis wordt er een een nieuwe revisie of build gemaakt. Het build-nummer kan gevonden in het bestand changelog.php in de Joomla root.

Vervolgens zie je @@ -87,7 +87,7 @@ hetgeen ons vertelt dat de verandering begint op regel 87 van het bestand.

Ten slotte zien we de code. De oude regel 87 wordt vooraf gegaan door een - en de nieuwe regel 87 wordt vooraf gegaan door een +.

De nieuwe versie van de regel zal de oude regel in het bestand vervangen.

Natuurlijk zijn de meeste patches complexer dan deze, waarin dit voorbeeld telkens herhaald wordt in deze structuur.

Dus wanneer u deze patch zou willen gebruiken om een versie van Joomla te fixen, zou u regel 87 van gmail.php moeten opzoeken en de wijziging moeten maken. Dus wanneer iemand u vertelt "Er is een patch op de tracker" bedoelt men dat u een patch kunt downloaden en toepassen op uw Joomla versie. Alhoewel wel in ogenschouw moet worden genomen dat wanneer uw versie niet overeenkomt met de versie in de code repository, het mogelijk is dat de patch niet werkt omdat het afhankelijk is of impact heeft op andere delen van de code.

Wanneer u als bijdrage een bug fix indient in tegenstelling tot alleen het melden van een probleem, heeft het de voorkeur dat u het patch-bestand eerst test. Wanneer u dat niet kunt, geef dan tenminste deze informatie:

  • De volledige namen en paden van de gewijzigde bestanden
  • De regelnummers van de wijzigingen
  • De oude en de nieuwe versie van de gewijzigde regels

Een patch-bestand maken heeft de voorkeur en is niet moeilijk wanneer u een subversie client installeert zoals Tortoise of de Subclipse plugin voor Eclipse. Voor information over hoe Eclipse IDE te installeren, zie Opzetten van een werkomgeving voor Joomla! ontwikkeling.

Patch Files en UTF-8 tekens

De meeste patch-bestanden zijn voor PHP bestanden en bevatten eenvoudige tekst. Echter kunnen patch-bestanden ook gebruikt worden voor taal INI bestanden, en deze kunnen vaak UTF-8 tekens bevatten. Er is een bekend probleem bij het toepassen van een patch met UTF-8 tekens in Eclipse. Het patch-bestand kan fouten tonen wanneer u het probeert toe te passen. Een mogelijke work-around voor dit probleem is om het bestand te kopiëren naar uw klembord en daarna in de patchinvoer specificatie in Eclipse, klembord in plaats van bestand te selecteren. Merk op dat het voorbeeld vraagtekens kan tonen in plaats van UTF-8 tekens, maar de patch wordt correct toegepast.

U kunt controleren of de patch correct is toegepast door de Compare With→Base Revision optie te gebruiken in Eclipse.

Andere belangrijke artikelen over patch-bestanden