2009-06-12 11 views
8

Der Patch ist für nutch 0,9: http://cvs.tty.org/~butch/blog/nutch_0.9_OR.patchWie man einen Patch auf ein Java-Projekt anwendet?

Wie soll ich den Patch richtig anwenden?

OS ist Windows XP

Genauer gesagt ich Eclipse bin mit einem nutch Projekt zu debuggen.

Hier ist mein Versuch:

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: 

Antwort

0
  1. Sie müssen die Originalquelle (! In der vorliegenden Version)
  2. Sie benötigen die Patch Unix-Dienstprogramm (I mit einer Kopie für Windows kommen haben meine wertvollen UnxUtils, google diesen Namen, um das SourceForge-Projekt zu finden). Oh, naja, nur um den Namen richtig zu machen: UnxUtils
  3. Sie wenden das Patch an, es ändert die Quellen
  4. Sie kompilieren das Projekt.
+0

Aber mein Q ist, wie man diesen Patch anwendet? Ich habe dieses Dienstprogramm bereits installiert. – omg

0

Haben Sie Cygwin? Wenn Sie dies installieren, erhalten Sie eine patch.exe, die Sie mit dem oben genannten verwenden können (und eine Tonne anderer sehr nützlicher Dinge).

können Sie den Patch anwenden mit:

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

Aber dieser Patch wird mehrere Dateien ändern. – omg

0

One: eine Sicherung Ihres Codes machen.

Zwei: Sie haben eine Sicherungskopie Ihres Codes erstellt, nicht wahr? 8-)

Drei:

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

Da Eclipse erwähnt - über das Projekt der rechten Maustaste, zum Team gehen -> Wenden Sie den Patch.

+0

Das sollte helfen! Aber wie kann ich wissen, welche Dateien geändert werden? – omg

+0

Der Apply Patch-Assistent wird alles für Sie tun. –

+0

Aber ich brauche die Liste der Dateien, die geändert wird, wie? – omg

1

Ich gehe davon aus das folgende:

  • UnxUtils in C: \ UnxUtils
  • "C: \ UnxUtils \ bin" und "C: \ UnxUtils \ usr \ local \ wbin "in Ihrer PATH-Variable enthalten.
  • Nutch Dateien in C: \ nutch-0,9
  • nutch_0.9_OR.patch zu delimiters Fenster Linie umgewandelt sonst wird ein Fehler wie dieser „Assertion bekommen fehlgeschlagen: großes stück, Datei patch.c, Linie 321"
  • nutch_0.9_OR.patch bis C kopiert: \ nutch-0,9

Dann eine Befehlszeile cd C öffnen: \ nutch-0,9 patch.exe -p0 -u -i nutch_0.9_OR.Patch

Fertig!

4

Sie sollten mit der rechten Maustaste auf Projekt, Team/Apply Patch.

Der dritte Schritt des Assistenten (Review-Patch) enthält einen Abschnitt zum Patch-Inhalt, in dem die geänderten Quelldateien aufgelistet sind.

Verwandte Themen