Merge refs/heads/master from .
[gitweb.git] / Documentation / diffcore.txt
index 45620f8fb05ccfa9ee36f1a44b0f449e3c43e259..6c474d1c0c33748777a1ee28d5cd251489eb7c21 100644 (file)
@@ -150,15 +150,13 @@ similarity score different from the default 50% by giving a
 number after "-M" or "-C" option (e.g. "-M8" to tell it to use
 8/10 = 80%).
 
-Note.  When the "-C" option is used, git-diff-cache and
-git-diff-file commands feed not just modified filepairs but
-unmodified ones to diffcore mechanism as well.  This lets the
-copy detector consider unmodified files as copy source
-candidates at the expense of making it slower.  Currently
-git-diff-tree does not feed unmodified filepairs even when the
-"-C" option is used, so it can detect copies only if the file
-that was copied happened to have been modified in the same
-changeset.
+Note.  When the "-C" option is used with --find-copies-harder
+option, git-diff-* commands feed unmodified filepairs to
+diffcore mechanism as well as modified ones.  This lets the copy
+detector consider unmodified files as copy source candidates at
+the expense of making it slower.  Without --find-copies-harder,
+git-diff-* commands can detect copies only if the file that was
+copied happened to have been modified in the same changeset.
 
 
 diffcore-merge-broken
@@ -193,6 +191,15 @@ like these:
        -B/60   (the same as above, since diffcore-break defautls to
                 50%).
 
+Note that earlier implementation left a broken pair as a separate
+creation and deletion patches.  This was unnecessary hack and
+the latest implementation always merges all the broken pairs
+back into modifications, but the resulting patch output is
+formatted differently to still let the reviewing easier for such
+a complete rewrite by showing the entire contents of old version
+prefixed with '-', followed by the entire contents of new
+version prefixed with '+'.
+
 
 diffcore-pickaxe
 ----------------