Comment créer un patch pour l'ensemble d'un répertoire de le mettre à jour?
Je sais qu'il y a plusieurs fils sur ce déjà, mais personne n'a entièrement expliqué exactement comment effectuer la première diff pour créer le fichier de patch, alors comment appliquer que le patch pour le répertoire initial de mise à jour.
Dans mon cas, il y a un répertoire de fichiers que n'importe qui peut télécharger à partir du web. J'ai pris ce répertoire et apporté des modifications à elle, et que vous voulez créer un fichier de correctif tels que d'autres puissent l'appliquer à la téléchargé le répertoire de reproduire exactement ce que j'ai modifié répertoire.
Aider? De quoi ai-je besoin de le dire à l'autre personne à l'égard de la façon d'appliquer mon patch?
Vous devez vous connecter pour publier un commentaire.
J'ai juste eu ce même problème - beaucoup de conseils sur la façon de moitié le faire. Eh bien, voici ce que j'ai fait pour obtenir à la fois l'application de correctifs et de unpatching de travail:
Pour Créer le Fichier de Correctif:
Mettre des copies de répertoires dans /tmp, nous pouvons donc créer le patch
fichier, ou si brave, obtenez-les côte à côte dans un même répertoire.
Exécuter approprié diff sur les deux répertoires, l'ancien et le nouveau:
Si une personne a l'orig/répertoire, ils peuvent recréer l'autre en cours d'exécution patch.
Pour Recréer le nouveau dossier de l'ancien dossier et de fichier de patch:
Déplacer le fichier de correctif pour un répertoire où l'orig/dossier existe
Ce dossier permettra d'obtenir assommé, afin de conserver une sauvegarde quelque part, ou
utiliser une copie.
À ce stade, l'orig/dossier contient le nouveau contenu, mais encore
a son nom, donc:
patch
a été patcher lenew/
pasorig/
répertoire pour moi, mais j'ai trouvé le-d
option qui permet de direcd
dans ce répertoire avant d'appliquer le patch et ensuite vous pouvez ajuster la-p N
argument en conséquence.J'avais besoin de créer un fichier de correctif et de l'envoyer à quelqu'un afin qu'ils pourraient mettre à jour leur répertoire pour correspondre à la mienne. Il y a beaucoup de mises en garde avec diff et patch cependant, il a fini par me prendre des heures pour comprendre quelque chose d'aussi conceptuellement simple. Les chemins d'accès absolus semblent être privilégiées sur les chemins relatifs, et de nombreuses options semblent avoir évolué à partir de niche des cas d'utilisation. J'ai finalement trouvé une solution basée sur David H répondre, avec d'autres conseils de Lakshmanan Ganapathy):
directory
àdirectory.orig
directory
pour atteindre l'état souhaitédirectory.orig
àdirectory
dansfile.patch
si le nom correspond pour le destinataireVoici mes notes:
Vérifier open source Scarabée de la bibliothèque C++: https://github.com/loyso/Scarab
C'est exactement ce que vous avez décrit.
Il s'appuie par fichier diff à l'aide de xdelta bibliothèque et le met à l'archive de paquet. Vous pouvez le redistribuer ce paquet et appliquer la différence. Il y a des binaires pour Win32.
Je suis l'auteur de projet Scarab.