$ 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).

Por qué el fuzz y el de la línea de desplazamiento? Este es un caso de demostración tratando de entender diff y patch, ya que las herramientas a veces/a menudo parecen no funcionar como se espera.

InformationsquelleAutor simpatico | 2011-06-02

2 Comentarios

  1. 15

    Parche hace básicos de la comprobación de la consistencia de los diferenciales y de su archivo, y si la comprobación falla, consigue compensar o pelusa.

    Se han compensado -1, ya que el parche se espera que el contenido de la diff coincidir con las líneas 2–4 de su archivo. En su archivo, sin embargo, son las líneas 1–3.

    Tiene fuzz>0, desde la primera línea del contexto (dos espacios y un */) no coincide con la línea en el archivo real (un espacio y un */). Debido a que, patch hizo un segundo paso donde se omite la primera y la última línea del contexto.

    Eso no explica por qué ver fuzz=2 y no 1. Tal vez un error de copiar-pegar los archivos? Cualquier ideas a nadie?

    • todavía no estoy seguro de que el problema real en aquel entonces.. me acabo de mudar en
    • esto me pasó a mí cuando copiar/pegar el archivo del parche de contenido en mi editor. Algunas de las líneas que sólo había espacios, pero consiguieron recortar para líneas vacías, por lo que el archivo de parche aplicado correctamente, pero con fuzz factores advertencias…
    • La primera línea en el parche no tiene dos espacios. El primer espacio sólo se identifica como un contexto en línea. El segundo espacio es parte de la línea.
  2. 4

    Los índices en su patch archivo (los números entre @@) son incorrectas.

    • Como @xofon dijo, usted tiene un problema con la línea de salida, usted tiene 2, pero debe ser 1
    • Pero también el segundo número debe ser 3 no 4, como tiene 3 líneas de código en su patch archivo antes de que se aplique el parche y 3 líneas de código en su patch archivo después de que se aplique el parche.
    • pero no hay ningún problema con la primera línea */.
      Hay 2 espacios en el patch archivo, pero esto es de esperar, ya que la primera columna se utiliza para tener - + o carácter.
      El fuzz usted recibió fue sobre el desplazamiento utilizado (mover todas las líneas hasta por 1)

    Por lo que su patch archivo debe ser

    $ cat patch
    --- toPatch
    +++ toPatch
    @@ -1,3 +1,3 @@
      */
    -final public class XMLWriter {
    +public class XMLWriter {
       public static float CURRENT_VERSION=2.2f;
    

    y con la toPatch archivo

    $ cat toPatch
     */
    final public class XMLWriter {
      public static float CURRENT_VERSION=2.2f;
    

    Luego el parche se aplicará sin pelusa advertencias …

    $ patch -p0 -ui patch
    patching file toPatch
    

Dejar respuesta

Please enter your comment!
Please enter your name here