2009-06-12 2 views
8

Патч для Nutch 0.9: http://cvs.tty.org/~butch/blog/nutch_0.9_OR.patchКак применить патч к Java-проекту?

Как я должен применить патч правильно?

ОС Виндоус XP

Более конкретно, я использую затмение для отладки 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: 

ответ

0
  1. Вам нужен оригинал (! В данной версии)
  2. Вам нужен патч Unix утилиты (у меня есть копия для Windows, приходя с мои драгоценные UnxUtils, google это имя, чтобы найти проект SourceForge). О, ну, просто сделал это, чтобы обеспечить правильное имя: UnxUtils
  3. Вы применяете патч, он будет изменять источники
  4. Вы компилируете проект.
+0

Но мой вопрос заключается в том, как применить этот патч? Я уже установил эту утилиту. – omg

0

У вас есть Cygwin? Установка этого даст вам файл patch.exe, который вы можете использовать с приведенным выше (и тонна других очень полезных вещей).

Вы можете применить патч с помощью:

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

Но этот патч собирается модифицировать несколько файлов. – omg

0

One: Сделайте резервную копию вашего кода.

ДВУХ: Вы сделали резервную копию своего кода, не так ли? 8-)

Три:

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

Поскольку вы упомянули Eclipse, - правой кнопкой мыши на проекте, перейдите в Команда -> Применить патч.

+0

Это должно помочь! Но как я могу узнать, какие файлы изменены? – omg

+0

Применимый мастер исправлений сделает все для вас. –

+0

Но мне нужно иметь список файлов, которые были изменены, как? – omg

1

Я предполагаю следующее:

  • UnxUtils установленные в C: \ unxutils
  • "C: \ unxutils \ Bin" и "C: \ unxutils \ USR \ Local \ wbin "входит в вашу переменную PATH.
  • Nutch файлы в C: \ Nutch-0,9
  • nutch_0.9_OR.patch преобразован в окно линии разделители иначе вы получите сообщение об ошибке, как это один «не удалось Assertion: ломоть, файл patch.c, линия 321"
  • nutch_0.9_OR.patch копируется в C: \ Nutch-0,9

Затем откройте командную строку кд C: \ Nutch-0,9 patch.exe -p0 -u -i nutch_0.9_OR.patch

Закончено!

4

Вы должны щелкнуть правой кнопкой мыши по проекту, патч Team/Apply.

Третий шаг мастера (обзорный патч) содержит раздел «Содержимое патча», в котором перечислены измененные исходные файлы.

Смежные вопросы