Pourquoi ce patch appliqué avec une fuzz de 1, et échouer avec fuzz de 0?
$ vim patch
Index: toPatch
===================================================================
--- toPatch
+++ toPatch
@@ -2,4 +2,4 @@
*/
-final public class XMLWriter {
+public class XMLWriter {
$ vim toPatch
*/
final public class XMLWriter {
public static float CURRENT_VERSION=2.2f;
$ patch -p0 -ui patch
patching file toPatch
Hunk #1 succeeded at 1 with fuzz 2 (offset -1 lines).
Pourquoi la fuzz et le décalage de ligne? C'est une démo cas essayer de comprendre diff et patch, les outils étant parfois/souvent ne semblent pas fonctionner comme prévu.
OriginalL'auteur simpatico | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Patch n'base de la vérification de la cohérence de la comparaison et de votre dossier, et si ces vérifications échoue, vous bénéficiez de l'offset ou de fuzz.
Vous avez décalage de -1, depuis le patch s'attend à ce que le contenu de la diff match lignes 2--4 de votre fichier. Dans votre fichier, cependant, ils sont des lignes 1--3.
Vous avez fuzz>0, depuis la première ligne du contexte (deux places et un
*/
) ne correspond pas à la ligne dans le fichier (un espace et un*/
). À cause de cela, le patch a fait un second passage où il a ignoré la première et la dernière ligne de la le contexte.Cela n'explique pas pourquoi vous voyez fuzz=2 et non pas 1. Peut-être une erreur de copier-coller les fichiers? Toutes les autres idées, n'importe qui?
ce qui m'est arrivé lors de copier/coller le patch de contenu de fichier dans mon éditeur. Quelques lignes seulement des espaces mais ils se sont taillés des lignes vides, de sorte que le fichier de correctif appliqué correctement, mais avec fuzz facteurs mises en garde...
La première ligne dans le patch n'a pas deux espaces. Le premier espace de seulement qu'il identifie comme une ligne de contexte. Le second espace est une partie de la ligne.
OriginalL'auteur xofon
L'index dans votre
patch
fichier (les chiffres entre@@
) sont erronées.patch
fichier avant le patch est appliqué et 3 lignes de code dans votrepatch
fichier après le patch est appliqué.*/
.Il y a 2 espaces dans le
patch
fichier, mais c'est normal, que la première colonne est utilisée pour avoir-
+
oucaractère.
La fuzz que vous avez reçu était sur le décalage utilisé (le déplacement de toutes les lignes par 1)
De sorte que votre
patch
fichier doit êtreet avec le
toPatch
fichierPuis le patch s'applique sans fuzz mises en garde ...
OriginalL'auteur Julien