Merge branch 'ja/dir-rename-doc-markup-fix'
authorJunio C Hamano <gitster@pobox.com>
Tue, 9 Apr 2019 17:14:21 +0000 (02:14 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Apr 2019 17:14:21 +0000 (02:14 +0900)
Doc update.

* ja/dir-rename-doc-markup-fix:
Doc: fix misleading asciidoc formating

1  2 
Documentation/technical/directory-rename-detection.txt
index 1c0086e287eadec2f6e1ffa1ca0dad49d7bbbe28,5ef051c030c3af13dfec42b4f146289950d92fb1..844629c8c441e786734c42e749293f2a718ed288
@@@ -20,8 -20,8 +20,8 @@@ More interesting possibilities exist, t
    * one side of history renames x -> z, and the other renames some file to
      x/e, causing the need for the merge to do a transitive rename.
  
-   * one side of history renames x -> z, but also renames all files within
-     x.  For example, x/a -> z/alpha, x/b -> z/bravo, etc.
+   * one side of history renames x -> z, but also renames all files within x.
+     For example, x/a -> z/alpha, x/b -> z/bravo, etc.
  
    * both 'x' and 'y' being merged into a single directory 'z', with a
      directory rename being detected for both x->z and y->z.
@@@ -90,26 -90,3 +90,26 @@@ directory rename detection support in
      simply not implemented.  Further, to implement this, directory rename
      detection logic would need to move from merge-recursive to
      diffcore-rename.
 +
 +  * am
 +
 +    git-am tries to avoid a full three way merge, instead calling
 +    git-apply.  That prevents us from detecting renames at all, which may
 +    defeat the directory rename detection.  There is a fallback, though; if
 +    the initial git-apply fails and the user has specified the -3 option,
 +    git-am will fall back to a three way merge.  However, git-am lacks the
 +    necessary information to do a "real" three way merge.  Instead, it has
 +    to use build_fake_ancestor() to get a merge base that is missing files
 +    whose rename may have been important to detect for directory rename
 +    detection to function.
 +
 +  * rebase
 +
 +    Since am-based rebases work by first generating a bunch of patches
 +    (which no longer record what the original commits were and thus don't
 +    have the necessary info from which we can find a real merge-base), and
 +    then calling git-am, this implies that am-based rebases will not always
 +    successfully detect directory renames either (see the 'am' section
 +    above).  merged-based rebases (rebase -m) and cherry-pick-based rebases
 +    (rebase -i) are not affected by this shortcoming, and fully support
 +    directory rename detection.