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 = [

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.