Como corrigir algo com saída diff?

1

Desejo aplicar as alterações abaixo em algum código que alguém tenha escrito e fornecido uma diffsaída. Existe uma maneira de fornecer apenas a saída abaixo? Posso criar facilmente um patch e aplicá-lo ou (como são apenas algumas linhas) devo continuar fazendo as alterações manualmente?

Mesmo excluindo o exemplo abaixo, se essa era uma diffsaída grande , eu realmente gostaria de saber se, apenas com isso, posso alimentar isso patchou algo parecido?

diff -r -c ganeti-2.5.1_orig/lib//constants.py
ganeti-2.5.1/lib//constants.py
*** ganeti-2.5.1_orig/lib//constants.py 2012-05-11 16:55:13.000000000 +0400
--- ganeti-2.5.1/lib//constants.py      2012-06-28 13:30:41.000000000 +0400
***************
*** 698,703 ****
--- 698,704 ----
  HV_KVM_USE_CHROOT = "use_chroot"
  HV_CPU_MASK = "cpu_mask"
  HV_MEM_PATH = "mem_path"
+ HV_PASSTHROUGH = "pci_pass"
  HV_BLOCKDEV_PREFIX = "blockdev_prefix"
  HV_REBOOT_BEHAVIOR = "reboot_behavior"

***************
*** 743,748 ****
--- 744,750 ----
    HV_KVM_USE_CHROOT: VTYPE_BOOL,
    HV_CPU_MASK: VTYPE_STRING,
    HV_MEM_PATH: VTYPE_STRING,
+   HV_PASSTHROUGH: VTYPE_STRING,
    HV_BLOCKDEV_PREFIX: VTYPE_STRING,
    HV_REBOOT_BEHAVIOR: VTYPE_STRING,
    }
***************
*** 1280,1285 ****
--- 1282,1288 ----
      HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
      HV_USE_LOCALTIME: False,
      HV_BLOCKDEV_PREFIX: "hd",
+     HV_PASSTHROUGH: "",
      HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
      },
    HT_KVM: {
diff -r -c ganeti-2.5.1_orig/lib//hypervisor/hv_xen.py
ganeti-2.5.1/lib//hypervisor/hv_xen.py
*** ganeti-2.5.1_orig/lib//hypervisor/hv_xen.py 2012-05-11
16:55:13.000000000 +0400
--- ganeti-2.5.1/lib//hypervisor/hv_xen.py      2012-06-28
13:30:43.000000000 +0400
***************
*** 579,585 ****
      constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
      # TODO: Add a check for the blockdev prefix (matching [a-z:] or
similar).
      constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK,
!     constants.HV_REBOOT_BEHAVIOR:
        hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS)
      }

--- 579,587 ----
      constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
      # TODO: Add a check for the blockdev prefix (matching [a-z:] or
similar).
      constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK,
! #passthrough pci
!     constants.HV_PASSTHROUGH:  hv_base.NO_CHECK,
!    constants.HV_REBOOT_BEHAVIOR:
        hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS)
      }

***************
*** 671,677 ****
        disk_data.append(iso)

      config.write("disk = [%s]\n" % (",".join(disk_data)))
!
      config.write("on_poweroff = 'destroy'\n")
      if hvp[constants.HV_REBOOT_BEHAVIOR] ==
constants.INSTANCE_REBOOT_ALLOWED:
        config.write("on_reboot = 'restart'\n")
--- 673,684 ----
        disk_data.append(iso)

      config.write("disk = [%s]\n" % (",".join(disk_data)))
!     # this is pci pass
!     pci_pass = hvp[constants.HV_PASSTHROUGH]
!     if pci_pass:
!        pci_pass_arr = []
!        pci_pass_arr = pci_pass.split("/")
!        config.write("pci = %s \n" % pci_pass_arr)
      config.write("on_poweroff = 'destroy'\n")
      if hvp[constants.HV_REBOOT_BEHAVIOR] ==
constants.INSTANCE_REBOOT_ALLOWED:
        config.write("on_reboot = 'restart'\n")
diff -r -c ganeti-2.5.1_orig/lib//query.py ganeti-2.5.1/lib//query.py
*** ganeti-2.5.1_orig/lib//query.py     2012-05-11 16:55:13.000000000 +0400
--- ganeti-2.5.1/lib//query.py  2012-06-28 13:30:43.000000000 +0400
***************
*** 1638,1643 ****
--- 1638,1644 ----
      constants.HV_NIC_TYPE: "NIC_type",
      constants.HV_PAE: "PAE",
      constants.HV_VNC_BIND_ADDRESS: "VNC_bind_address",
+     constants.HV_PASSTHROUGH: "pci_pass",
      }

    fields = [
jwbensley
fonte
Sim, é assim que o diff / patch funciona. Você encontra as diferenças para que você só precise armazená-las, em vez de todo o arquivo, para poder corrigir um arquivo automaticamente. O arquivo acima é o patch, você não precisa criá-lo. Você o aplica ao arquivo existente (assumindo que o arquivo existente seja da versão imediatamente anterior do patch).
Synetech 17/09/12

Respostas:

1

Sim, você pode usar patchpara aplicar esse diff a um arquivo. Salve-o como foo.diffe aplique-o assim:

patch < foo.diff
Ansgar Wiechers
fonte
Ah sim, vejo agora, desculpe pela minha resposta tardia. Levei um tempo para testar isso. Vejo agora que patchtem diffsaída direta como entrada. Não sabia que entenderia a formatação diffdiretamente e, embora possa ter que ser formatado corretamente para patch. Obrigado!
precisa saber é o seguinte