11

パッチはnutch0.9用です:http: //cvs.tty.org/~butch/blog/nutch_0.9_OR.patch

パッチを正しく適用するにはどうすればよいですか?

OSはWindowsXPです

具体的には、eclipseを使用してnutchプロジェクトをデバッグしています。

これが私の裁判です:

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:
4

6 に答える 6

22

Eclipse について言及したので、プロジェクトを右クリックして、[チーム] -> [パッチの適用] に移動します。

于 2009-06-12T12:24:35.920 に答える
5

プロジェクトを右クリックし、チーム/パッチを適用する必要があります。

ウィザードの 3 番目のステップ (パッチのレビュー) には、変更されたソース ファイルが一覧表示される [パッチ コンテンツ] セクションが含まれます。

于 2009-06-12T14:46:17.343 に答える
1

私は次のことを想定しています:

  • C:\unxutilsにインストールされた UnxUtils
  • "C:\unxutils\bin" および " C:\unxutils\usr\local\wbin " が PATH 変数に含まれています。
  • C:\nutch-0.9 のNutch ファイル
  • nutch_0.9_OR.patchを Windows の行区切り文字に変換すると、 「Assertion failed: hunk, file patch.c, line 321」のようなエラーが表示されます。
  • nutch_0.9_OR.patchを C:\nutch-0.9 にコピーしました

次に、コマンド ライン cd C:\nutch-0.9 patch.exe -p0 -u -i nutch_0.9_OR.patch を開きます。

終了した!

于 2009-06-12T12:32:13.343 に答える
0

1 つ: コードのバックアップを作成します。

2: コードのバックアップを作成しましたね。8-)

三:

cd \path\to\nutch
patch -p0 < nutch_0.9_OR.patch
于 2009-06-12T12:19:13.420 に答える
0
  1. 元のソースが必要です (指定されたバージョンで!)
  2. Unix ユーティリティのパッチが必要です (貴重な UnxUtils に Windows 用のコピーが付属しています。その名前でググって SourceForge プロジェクトを見つけてください)。ああ、まあ、名前が正しいことを確認するためにそれをやっただけです: UnxUtils
  3. パッチを適用すると、ソースが変更されます
  4. プロジェクトをコンパイルします。
于 2009-06-12T11:49:56.753 に答える
0

あなたはCygwinを持っていますか?これをインストールすると、上記 (およびその他の非常に便利なもの) で使用できる patch.exe が提供されます。

次を使用してパッチを適用できます。

patch originalfile -i patchfile.patch -o updatedfile 
于 2009-06-12T11:50:24.770 に答える