tags:

views:

84

answers:

3

What does the following mean ?

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 @@

+  int CJK = 21;
+  int DIGIT = 22;

   int DEFAULT = 0;

   String[] tokenImage = {
     "<EOF>",
+    "\"OR\"",
     "<WORD>",
     "<ACRONYM>",
     "<SIGRAM>",
@@ -39,6 +43,8 @@
     "\"\\\"\"",
     "\":\"",
     "\"/\"",
+    "\"(\"",
+    "\")\"",
     "\".\"",
     "\"@\"",
     "\"\\\'\"",
A: 

That depends on what you're asking. Diff shows you the differences between two files. In your case you're diffing NutchAnalysisConstants.java from two different places and generating information about those differences.

-r to diff means 'recursive diff,' although in this case it does nothing since you're diffing files, not directories.

-B means to ignore changes that only involve blank lines.

-N means that if in directory1 I have a file, but it isn't present in directory2, diff should treat it as if the file is present but empty in directory2 (thus effectively giving you the full contents of the file in directory1).

-u means to use the unified output format, which is only supported by GNU diff and GNU patch.

As for what the output means, this link may be useful for you.

FreeMemory
A: 

The + characters mean that those lines were added since the last version of NutchAnalysisConstants.java. The @@ line is telling you that the diff has jumped to another section of the file, in this case line 39 in the original, or line 43 in the new.

Johnny G
@@ -39,6 +43,8 @@what does 6 and 8 mean specifically?
Shore
It's the number of lines the change hunk applies to for the respective file. So, for the old file, it applies to 6 lines, vs 8 for the new file.
Johnny G
But it turns out that new file is not changed ,is that by design?
Shore
+1  A: 

The -u option you used specifies the unified format. In that format the first two lines is a header --- is the original file, +++ is the new file, and the timestamps.

That is then followed by chunks (change hunks) that starts with the @@ -R +R @@ syntax.

Those are two ranges, the one with the - is the range for the chunk in the original file, and the one with the + the range in the new file, designated by line numbers.

Within these chunks lines are identified as additions or deletions - means delete, + means addition. Lines that did not change in that chunk will have neither + or - front of it.

In your example it means there are two chunks, or sections, that changed between the two files and the lines with + in it are the new ones added, nothing was deleted.

You can find much more information about the syntax by doing a google search for unified diff.

Andre Miller
You mentioned "@@ -R +R @@" syntax,but it's in fact "@@ -R,r +R,r @@",what does the other number mean?
Shore