2009-06-12 14 views
8

El parche es de 0,9 Nutch: http://cvs.tty.org/~butch/blog/nutch_0.9_OR.patch¿Cómo aplicar un parche a un proyecto de Java?

¿Cómo debo aplicar el parche correctamente?

sistema operativo es Windows XP

Más específicamente, estoy usando Eclipse para depurar un proyecto Nutch.

Aquí está mi juicio:

D:\nutch-0.9.bak>patch -p0 < nutch_0.9_OR.patch 
Hmm... Looks like an ed script to me... 
(Patch is indented 5 spaces.) 
The text leading up to this was: 
-------------------------- 
|diff -rBNu src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java 
|--- src.orig/java/org/apache/nutch/analysis/NutchAnalysisConstants.java  2009-03-10 11:34:01.000000000 -0700 
|+++ src/java/org/apache/nutch/analysis/NutchAnalysisConstants.java  2009-03-10 14:11:55.000000000 -0700 
|@@ -4,30 +4,34 @@ 
| public interface NutchAnalysisConstants { 
| 
| int EOF = 0; 
|- int WORD = 1; 
|- int ACRONYM = 2; 
|- int SIGRAM = 3; 
|- int IRREGULAR_WORD = 4; 
|- int C_PLUS_PLUS = 5; 
|- int C_SHARP = 6; 
|- int PLUS = 7; 
|- int MINUS = 8; 
|- int QUOTE = 9; 
|- int COLON = 10; 
|- int SLASH = 11; 
|- int DOT = 12; 
|- int ATSIGN = 13; 
|- int APOSTROPHE = 14; 
|- int WHITE = 15; 
|- int WORD_PUNCT = 16; 
|- int LETTER = 17; 
|- int CJK = 18; 
|- int DIGIT = 19; 
|+ int QOR = 1; 
|+ int WORD = 2; 
|+ int ACRONYM = 3; 
|+ int SIGRAM = 4; 
|+ int IRREGULAR_WORD = 5; 
|+ int C_PLUS_PLUS = 6; 
|+ int C_SHARP = 7; 
|+ int PLUS = 8; 
|+ int MINUS = 9; 
|+ int QUOTE = 10; 
|+ int COLON = 11; 
|+ int SLASH = 12; 
|+ int LPAREN = 13; 
|+ int RPAREN = 14; 
|+ int DOT = 15; 
|+ int ATSIGN = 16; 
|+ int APOSTROPHE = 17; 
|+ int WHITE = 18; 
|+ int WORD_PUNCT = 19; 
|+ int LETTER = 20; 
|+ int CJK = 21; 
|+ int DIGIT = 22; 
| 
| int DEFAULT = 0; 
| 
| String[] tokenImage = { 
|  "<EOF>", 
|+ "\"OR\"", 
|  "<WORD>", 
|  "<ACRONYM>", 
|  "<SIGRAM>", 
|@@ -39,6 +43,8 @@ 
|  "\"\\\"\"", 
|  "\":\"", 
|  "\"/\"", 
|+ "\"(\"", 
|+ "\")\"", 
|  "\".\"", 
|  "\"@\"", 
|  "\"\\\'\"", 
|diff -rBNu src.orig/java/org/apache/nutch/analysis/NutchAnalysis.java src/java/org/apache/nutch/analysis/NutchAnalysis.java 
|--- src.orig/java/org/apache/nutch/analysis/NutchAnalysis.java 2009-03-10 11:34:01.000000000 -0700 
|+++ src/java/org/apache/nutch/analysis/NutchAnalysis.java  2009-03-10 14:11:55.000000000 -0700 
|@@ -56,7 +56,11 @@ 
|   queryString, (analyzer != null) ? analyzer : new NutchDocumentAnalyzer(conf)); 
|  parser.queryString = queryString; 
|  parser.queryFilters = new QueryFilters(conf); 
|- return parser.parse(conf); 
|+ try { 
|+  return parser.parse(conf); 
|+ } catch (ParseException pe) { 
|+  throw new IOException("Parse exception: " + pe); 
|+ } 
| } 
| 
| /** For debugging. */ 
|@@ -77,44 +81,60 @@ 
| String field; 
| boolean stop; 
| boolean prohibited; 
|+ boolean required; 
|  nonOpOrTerm(); 
|  label_1: 
-------------------------- 
File to patch: 

Respuesta

0
  1. Usted necesita la fuente original (! En la versión dada)
  2. Es necesario el parche utilidad Unix (tengo una copia para Windows viene con mi precioso UnxUtils, google ese nombre para encontrar el proyecto SourceForge). Oh, bueno, solo lo hice para asegurar que el nombre sea correcto: UnxUtils
  3. Aplicas el parche, cambiará las fuentes
  4. Compilas el proyecto.
+0

Pero mi Q es cómo aplicar este parche. Ya instalé esa utilidad. – omg

0

¿Tiene Cygwin? Instalar esto le dará un parche.exe que puede usar con lo anterior (y un montón de otras cosas muy útiles).

Se puede aplicar el parche usando:

patch originalfile -i patchfile.patch -o updatedfile 
+0

Pero ese parche va a modificar varios archivos. – omg

0

uno: Hacer una copia de seguridad de su código.

Dos: Hizo una copia de seguridad de su código, ¿verdad? 8-)

Tres:

cd \path\to\nutch 
patch -p0 < nutch_0.9_OR.patch 
15

Ya que menciona Eclipse - haga clic derecho en el proyecto, vaya a Equipo -> Aplicar parche.

+0

¡Eso debería ayudar! Pero, ¿cómo puedo saber qué archivos se modifican? – omg

+0

El asistente de aplicar parche hará todo por usted. –

+0

Pero necesito tener la lista de archivos modificada, ¿cómo? – omg

1

estoy asumiendo lo siguiente:

  • UnxUtils instalados en C: \ UnxUtils
  • "C: \ UnxUtils \ bin" y "C: \ UnxUtils \ usr \ Local \ wbin "incluido en su variable PATH.
  • archivos Nutch en C: \ Nutch-0,9
  • nutch_0.9_OR.patch se convirtieron al delimitadores de línea de ventanas de lo contrario se producirá un error como éste "Error de aserción: patch.c trozo, archivo, la línea 321"
  • nutch_0.9_OR.patch copia en C: \ Nutch-0,9

a continuación, abra una línea de comandos cd C: \ Nutch-0,9 patch.exe -p0 -u -i nutch_0.9_OR.patch

¡Terminado!

4

Debe hacer clic derecho en el proyecto, Equipo/Aplicar parche.

El tercer paso del asistente (parche de revisión) contiene una sección de contenido de parche donde se enumeran los archivos fuente modificados.

Cuestiones relacionadas