web-dev-qa-db-fra.com

Utilisation de la sortie de diff pour créer le patch

J'ai quelque chose comme ça

src/sim/simulate.cc
41d40
< #include "mem/mem-interface.h"
90,91d88
<             dram_print_stats_common(curTick/500);
<
src/mem/physical.hh
52d51
<   public:
55,56d53
<       public:
<
58a56,57
>       public:
>
61,62c60,61
<         virtual bool recvTiming(PacketPtr pkt); //baoyg
<
---

Je crois que cela a été créé en utilisant la commande diff dans une arborescence source. Ce que je veux, c'est créer le patch à l'aide de cette sortie et appliquer les mêmes modifications à mon arborescence source.

39
Eduardo

Je crois que diff -u oldfile newfile > a.patch est utilisé pour créer des fichiers de correctifs, bien que d'autres commutateurs puissent également être ajoutés (-N?).

Edit: OK, 4 ans plus tard et je vais enfin expliquer ce que signifient les commutateurs:

-u crée un nifié diff. Les différences unifiées sont le type de différences que le programme de correctif s'attend à obtenir en entrée. Vous pouvez également spécifier un nombre après u (min 3, par défaut 3) pour augmenter le nombre de lignes de sortie. C'est au cas où 3 lignes ne sont pas assez uniques pour localiser un seul endroit dans le programme.

-N traite les fichiers absents comme étant vides, ce qui signifie qu'il produira beaucoup de contenu supplémentaire si l'un des fichiers est vide (ou voir le point suivant).

De plus, newfile et oldfile peuvent tous deux être des répertoires au lieu de fichiers uniques. Vous voudrez probablement le -r argument pour que cela récursive tous les sous-répertoires.

70
Powerlord

Si vous souhaitez obtenir le même patch de sortie que SVN diff, étant donné deux fichiers différents:

diff -Naur fichier1.cpp fichier2.cpp

14
Andrei Taranchenko

Ce que vous avez là-bas est un diff non unifié. le correctif peut le lire, mais il sera incapable de faire des correspondances de contexte et est plus susceptible de faire des erreurs.

2
Sparr

C'est est un fichier de patch (partiel), mais il aurait été préférable qu'ils vous fournissent une sortie diff unifiée.

Le principal problème avec ce correctif est qu'il ne mentionne pas les fichiers qui sont modifiés, et comme il n'y a pas de contexte fourni, les fichiers doivent être exact, le correctif ne pourra pas autoriser des changements mineurs dans le fichier.

1
Arafangion