Como eu adiciono um arquivo de patch unificado?

1

Se eu tiver um arquivo de patch no formato de patch unificado, como no exemplo abaixo, como adicionar linhas a ele para que essas linhas sejam adicionadas pelo patch (aplicado)?

--- lao 2002-02-21 23:30:39.942229878 -0800
+++ tzu 2002-02-21 23:30:50.442260588 -0800
@@ -1,7 +1,6 @@
-The Way that can be told of is not the eternal Way;
-The name that can be named is not the eternal name.
The Nameless is the origin of Heaven and Earth;
-The Named is the mother of all things.
+The named is the mother of all things.
+
Therefore let there always be non-being,
so we may see their subtlety,
And let there always be being,
@@ -9,3 +8,6 @@
The two are the same,
But after they are produced,
they have different names.
+They both may be called deep and profound.
+Deeper and more profound,
+The door of all subtleties!
    
por Xofo 19.07.2016 / 17:43

1 resposta

4

Curto: você não faz isso.

Long: Veja por que

  • Um unified-diff é um script , usando line-numbers e counts que ligam ao conteúdo do diff.
  • É possível fazer manualmente alterações simples neste script (eu faço ...), mas
  • Um unified-diff é útil principalmente com o programa patch e
  • patch verifica a consistência entre as partes de um diff e
  • patch rejeitará as partes que considera inconsistentes.

Estas linhas contêm números de linhas e contagens:

@@ -1,7 +1,6 @@
@@ -9,3 +8,6 @@

e as contagens devem corresponder ao número das principais marcas + ou - nas linhas restantes do diff.

Então você não faz isso manualmente. Alguém poderia escrever um programa para fazer isso. No entanto, não está em patchutils (a idéia de alguém de aplicativos úteis para manipular arquivos de correção), embora você possa encontrar o% dele Os scriptsrediff e combinediff são úteis para a edição manual de arquivos de correção.

Existem poucos aplicativos que lidam com arquivos de correção em qualquer caso (talvez alguém tenha escrito um).

A prática usual aqui é regenerar o diff por

  1. obtenha as fontes originais (antes do patch)
  2. faça uma versão corrigida das fontes (aplicando o patch)
  3. faça suas alterações adicionais
  4. crie um novo patch (em ambos os conjuntos de alterações) ou patch incremental (apenas para suas alterações).

Isso é simples de fazer com diff e patch . Por ser simples, muitas pessoas não escrevem ferramentas para fazer isso.

Leitura adicional:

por 20.07.2016 / 03:19

Tags