Maison  >  Article  >  Tutoriel système  >  Compréhension approfondie des fichiers de correctifs : génération d'instructions diff et analyse des paramètres communs

Compréhension approfondie des fichiers de correctifs : génération d'instructions diff et analyse des paramètres communs

PHPz
PHPzoriginal
2024-06-27 08:35:46503parcourir

深入了解 patch 文件:diff 指令生成与常用参数解析

les fichiers patch sont générés par des instructions diff (linuxdiff, svndiff, gitdiff, gitformat-patch).

Tout d’abord, présentons la commande diff et ses paramètres communs :

diff :

La fonction de diff est de comparer les différences entre deux fichiers puis de les enregistrer, ce qu'on appelle le patch diff. Format de phrase : diff [option] fichier source (dossier) fichier de destination (dossier) Le système d'exploitation Linux est bon, il s'agit de patcher le fichier source (dossier) patch LinuxMarco Linux pour en faire le fichier de destination (clip), le terme est « mise à niveau ». Les trois options les plus couramment utilisées sont présentées ci-dessous :

-r est une option récursive. Si vous définissez cette option linux sur patch, diff comparera tous les fichiers correspondants dans les répertoires de code source de deux versions différentes à la fois, y compris les fichiers de sous-répertoire.

L'option

-N garantit que le fichier de correctif gérera correctement les situations dans lesquelles des fichiers ont été créés ou supprimés.

L'option

-u crée des fichiers de correctifs dans un format unifié plus compact que le format par défaut.

2、patch

————————————————————————

linux 打patch_linux 打patch_linux 打patch

NOM

patch-appliquer un fichier différentiel à un original

SYNOPSIS

patch[options][fichier original[fichier de patch]]

mais généralement juste

patch-pnum

————————————————————————

En termes simples, le patch consiste à utiliser le patch créé par diff pour convertir le fichier source (dossier) et le fichier de destination (dossier). Cela signifie que vous pouvez avoir un fichier source (dossier) -> fichier de destination (dossier) ou un fichier de destination (dossier) -> fichier source (dossier). Voici quelques-unes des options les plus couramment utilisées :

L'option

-p0 consiste à trouver le fichier de destination (dossier) dans le répertoire actuel

L'option

-p1 ignore le répertoire de premier niveau et commence la recherche à partir du répertoire actuel.

L'option similaire -p2 doit ignorer le répertoire de deuxième niveau

 ;

......

*************************************************** See More ***** *************

Voici un exemple :

---old/modules/pcitableMonSep2711:03:561999

+++nouveau/modules/pcitableTueDec1920:05:412000

Si vous utilisez le paramètre -p0, cela signifie trouver un dossier appelé old dans le répertoire actuel et rechercher le fichier pcitable sous les modules en dessous pour effectuer l'opération de patch.

Si vous utilisez le paramètre -p1, cela signifie ignorer le répertoire de premier niveau (c'est-à-dire quel que soit son ancien), rechercher le dossier modules dans le répertoire actuel et rechercher pcitable en dessous. Le principe est que le répertoire courant doit être le répertoire où se trouvent les modules. Le fichier de correctif diff peut se trouver à n'importe quel emplacement, à condition que le chemin d'accès au fichier de correctif diff soit spécifié. En fait, vous pouvez utiliser des chemins relatifs ou des chemins absolus. Mais j'utilise généralement des chemins relatifs.

*************************************************** See More ***** *************

L'option

-E indique que si un fichier vide est trouvé, supprimez-le

L'option

-R indique que les "nouveaux" fichiers et les "anciens" fichiers du fichier patch doivent maintenant être échangés (en fait, il s'agit de patcher la nouvelle version et de la faire devenir l'ancienne version)

linux 打patch_linux 打patch_linux 打patch

Structure du fichier de correctif

Tête de patch

L'en-tête du correctif est composé de deux lignes commençant par ---/+++, qui représentent les fichiers à corriger. Le début de --- représente l'ancien fichier et le début de +++ représente le nouveau fichier.

Plusieurs correctifs dans un seul fichier de correctif

Un fichier de correctif peut contenir de nombreuses sections commençant par ---/+++, et chaque section est utilisée pour appliquer un correctif. Ainsi, un fichier de correctifs peut contenir plusieurs correctifs.

Blocs

Les blocs sont les endroits à modifier dans le patch. Cela commence et se termine généralement par quelque chose qui n’a pas besoin d’être modifié. Ils servent simplement à indiquer l'emplacement à modifier. Ils commencent généralement par @@ et se terminent par le début d'un autre bloc ou d'un nouvel en-tête de patch.

linux 打patch_linux 打patch_linux 打patch

Bloquer l'indentation

Le bloc

sera mis en retrait d'une colonne, et cette colonne sert à indiquer si la ligne doit être abaissée ou supprimée.

Première colonne de blocs

Le signe

+ indique que cette ligne doit être ajoutée.

Le signe

- indique que cette ligne doit être supprimée.

Aucun signe moins ou signe négatif signifie qu’il s’agit simplement d’une référence et n’a pas besoin d’être modifié.

Utilisation :

patch-p0

patch-p1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn