Vous êtes ici

Méthode simple pour créer un patch d'un fichier texte (PHP, etc.)

Supposons que vous souhaitiez améliorer un CMS comme Drupal en proposant un correctif ou une nouvelle fonctionnalité mais que vous ne souhaitez pas utiliser les dépôts officiels (CVS, SVN, Git, Mercurial, etc. qui gère bien les différentes versions) pour faire tester votre patch avant de le publier par exemple. Alors vous pouvez procéder de cette manière :

  1. Ouvrez un shell *nix ou ouvrez une session Telnet/SSH sur le serveur
  2. Déplacez vous dans le dossier ou se trouve le fichier original : ### Changement de dossier cd /chemin/du/fichier/original
  3. Dupliquez le fichier concerné par votre patch. Par exemple vous souhaitez patcher le fichier du CMS nommé "install.php", nommez le par exemple : "install.nouvelleversion.php" : ### Duplication du fichier cp install.php install.nouvelleversion.php
  4. Faites les modifications nécessaires dans votre fichier "install.nouvelleversion.php" (en réalité si vous voulez d'abord tester vous même votre patch il vous faudra 2 environnements, ou encore vous pourriez faire l'inverse : renommer le fichier original : ### Duplication du fichier cp install.php install.original.php puis vous pourriez modifier directement "install.php" ### Edition du fichier nano ./install.php
  5. Lorsque vous avez terminé la modification du fichier "install.nouvelle.php" vous êtes prêt à créer votre patch. Pour créer un fichier de patch que l'on nommera dans notre cas "install.php.patch" lancez la commande : ### Création d'un patch diff -up install.php install.nouvelleversion.php > install.php.patch Un nouveau fichier est alors créé contenant l'ensemble des modifications que nous avez apportées. Les "-" représentent les lignes de code supprimées ou remplacées" et les "+" les nouvelles lignes de code ou les nouvelles versions des lignes modifiées.

Non seulement visuellement vous aurez en un coup d'oeil l'ensemble de vos modifications, mais en plus ce type de fichiers étant normalisé, vous pourrez le transmettre et votre testeur appliquer le patch via la commande éponyme *nix "patch" (à compléter)