2009-06-12 5 views
8

Le patch est NuTcH 0,9: http://cvs.tty.org/~butch/blog/nutch_0.9_OR.patchComment appliquer un correctif à un projet Java?

Comment dois-je appliquer correctement le patch?

OS est Windows XP

Plus précisément, j'utilise Eclipse pour déboguer un projet nutch.

Voici mon essai:

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: 

Répondre

0
  1. Vous avez besoin de la source originale (! À la version donnée)
  2. Vous avez besoin de l'utilitaire Unix patch (j'ai une copie pour Windows à venir avec mes précieux UnxUtils, google ce nom pour trouver le projet SourceForge). Oh, eh bien, juste fait pour s'assurer que le nom est correct: UnxUtils
  3. Vous appliquez le correctif, il va changer les sources
  4. Vous compilez le projet.
+0

Mais mon Q est que comment appliquer ce correctif? J'ai déjà installé cet utilitaire. – omg

0

Avez-vous Cygwin? L'installation de cela vous donnera un patch.exe que vous pouvez utiliser avec ce qui précède (et une tonne d'autres choses très utiles).

Vous pouvez appliquer le patch en utilisant:

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

Mais ce correctif va modifier plusieurs fichiers. – omg

0

One: Faites une sauvegarde de votre code. Deux: Vous avez fait une sauvegarde de votre code, n'est-ce pas? 8-)

Trois:

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

Puisque vous avez mentionné Eclipse - clic droit sur le projet, rendez-vous à l'équipe -> Appliquer patch.

+0

Cela devrait aider! Mais comment puis-je savoir quels fichiers sont modifiés? – omg

+0

L'assistant d'application de correctifs fera tout pour vous. –

+0

Mais j'ai besoin d'avoir la liste des fichiers qui sont modifiés, comment? – omg

1

Je suppose que ce qui suit:

  • UnxUtils installés dans C: \ UnxUtils
  • "C: \ UnxUtils \ bin" et "C: \ UnxUtils \ usr \ Local \ wbin "inclus dans votre variable PATH.
  • fichiers Nutch dans C: \ nutch-0,9
  • nutch_0.9_OR.patch converti en fenêtres ligne délimiteurs autre que vous obtiendrez une erreur comme celui-ci « Assertion a échoué: gros morceau, fichier patch.c, ligne 321"
  • nutch_0.9_OR.patch copié dans C: \ nutch-0,9

ouvrir ensuite une ligne de commande cd C: \ nutch-0,9 patch.exe -p0 -u -i nutch_0.9_OR.patch

Fini!

4

Vous devez utiliser le clic droit sur le projet, Team/Apply patch.

La troisième étape de l'assistant (révision correctif) contient une section Contenu du correctif dans laquelle les fichiers sources modifiés sont répertoriés.

Questions connexes