Code

Merge branch 'lh/merge'
[git.git] / Documentation / diff-format.txt
index e38a1f14056b2e3cfe3c281eb7df7e5b44d520db..001503205b24d5c20ec10792c4ab6c4c7221bcb7 100644 (file)
@@ -1,7 +1,7 @@
 The output format from "git-diff-index", "git-diff-tree" and
 "git-diff-files" are very similar.
 
 The output format from "git-diff-index", "git-diff-tree" and
 "git-diff-files" are very similar.
 
-These commands all compare two sets of things; what is 
+These commands all compare two sets of things; what is
 compared differs:
 
 git-diff-index <tree-ish>::
 compared differs:
 
 git-diff-index <tree-ish>::
@@ -126,6 +126,13 @@ the file that rename/copy produces, respectively.
     If there is need for such substitution then the whole
     pathname is put in double quotes.
 
     If there is need for such substitution then the whole
     pathname is put in double quotes.
 
+The similarity index is the percentage of unchanged lines, and
+the dissimilarity index is the percentage of changed lines.  It
+is a rounded down integer, followed by a percent sign.  The
+similarity index value of 100% is thus reserved for two equal
+files, while 100% dissimilarity means that no line from the old
+file made it into the new one.
+
 
 combined diff format
 --------------------
 
 combined diff format
 --------------------
@@ -139,28 +146,28 @@ index fabadb8,cc95eb0..4866510
 --- a/describe.c
 +++ b/describe.c
 @@@ -98,20 -98,12 +98,20 @@@
 --- a/describe.c
 +++ b/describe.c
 @@@ -98,20 -98,12 +98,20 @@@
-       return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
+       return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
   }
   }
-  
+
 - static void describe(char *arg)
  -static void describe(struct commit *cmit, int last_one)
 ++static void describe(char *arg, int last_one)
   {
  +     unsigned char sha1[20];
  +     struct commit *cmit;
 - static void describe(char *arg)
  -static void describe(struct commit *cmit, int last_one)
 ++static void describe(char *arg, int last_one)
   {
  +     unsigned char sha1[20];
  +     struct commit *cmit;
-       struct commit_list *list;
-       static int initialized = 0;
-       struct commit_name *n;
-  
+       struct commit_list *list;
+       static int initialized = 0;
+       struct commit_name *n;
+
  +     if (get_sha1(arg, sha1) < 0)
  +             usage(describe_usage);
  +     cmit = lookup_commit_reference(sha1);
  +     if (!cmit)
  +             usage(describe_usage);
  +
  +     if (get_sha1(arg, sha1) < 0)
  +             usage(describe_usage);
  +     cmit = lookup_commit_reference(sha1);
  +     if (!cmit)
  +             usage(describe_usage);
  +
-       if (!initialized) {
-               initialized = 1;
-               for_each_ref(get_name);
+       if (!initialized) {
+               initialized = 1;
+               for_each_ref(get_name);
 ------------
 
 1.   It is preceded with a "git diff" header, that looks like
 ------------
 
 1.   It is preceded with a "git diff" header, that looks like
@@ -233,4 +240,3 @@ parents).  When shown by `git diff-files -c`, it compares the
 two unresolved merge parents with the working tree file
 (i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
 "their version").
 two unresolved merge parents with the working tree file
 (i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
 "their version").
-