format de fichier de correctif Linux
«Patch» fait référence à une série de différences entre les fichiers.
Après avoir effectué des modifications sur la base du fichier d'origine, un fichier patch est généré (à l'aide de la commande diff) en fonction des modifications effectuées.
Une personne qui détient le fichier d'origine applique le correctif au fichier d'origine (à l'aide de la commande patch), et il devient un fichier modifié.
1. Créez deux fichiers d'expérimentation
- Fichier original: 1.txt
this is a test
for patch file format
so let us go!
- Fichier modifié: 2.txt
this is a test
for linux patch file format
so let us go!
learn it
2. Générez des fichiers de correctifs
diff -u 1.txt 2.txt > diff.patch
vim diff.patch
Le contenu du fichier de correctif généré est le suivant:
1 --- 1.txt 2020-07-20 16:45:27.131654289 +0800
2 +++ 2.txt 2020-07-20 16:46:26.348728016 +0800
3 @@ -1,3 +1,4 @@
4 this is a test
5 -for patch file format
6 +for linux patch file format
7 so let us go!
8 +learn it
3. En-tête de patch
1 --- 1.txt 2020-07-20 16:45:27.131654289 +0800
2 +++ 2.txt 2020-07-20 16:46:26.348728016 +0800
"-" signifie l'ancien fichier (fichier d'origine)
"+++" signifie nouveau fichier (fichier modifié)
L'en-tête du correctif enregistre le nom de fichier et l'heure de création du fichier d'origine et du fichier modifié.
4. Bloquer
Les blocs du patch sont utilisés pour illustrer les changements dans le fichier. Ils commencent généralement par @@开始,结束于另一个块的开始或者一个新的补丁头
.
3 @@ -1,3 +1,4 @@
4 this is a test
5 -for patch file format
6 +for linux patch file format
7 so let us go!
8 +learn it
5. Bloquer l'indentation
3 @@ -1,3 +1,4 @@
4 this is a test
5 -for patch file format
6 +for linux patch file format
7 so let us go!
8 +learn it
Le bloc sera mis en retrait d'une colonne. Il existe trois cas pour cette colonne:
-
La ligne commençant par "-" signifie que le changement de ligne n'existe que dans le fichier d'origine, comme la ligne 5
-
La ligne commençant par «+» signifie que le changement de ligne n'existe que dans le fichier modifié, comme la ligne 6 et la ligne 8.
-
La ligne commençant par un espace indique que la ligne modifiée existe à la fois dans le fichier d'origine et dans le fichier modifié, comme les lignes 4 et 7
Du point de vue du correctif, cette colonne est utilisée pour indiquer si cette ligne doit être ajoutée ou supprimée;
-
La ligne commençant par "-" doit être supprimée
-
Les lignes commençant par "+" doivent être ajoutées
-
Les lignes commençant par des espaces restent inchangées