On Tue, Aug 28, 2018 at 9:58 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Elijah Newren <newren@xxxxxxxxx> writes: > > > - Add a flag to turn off directory rename detection, and set the > > flag for every call from am.c in order to avoid problems like this. > > I'd say this is the only practical solution, before you deprecate > the "pipe format-patch output to am -3" style of "git rebase" (and > optionally replace with something else). I posted a patch a while back to add an --am flag to "git rebase", make "--am" be implied by options which are still am-specific (--whitespace, --committer-date-is-author-date, and -C), and change --merge to be the default. I'll post it as an RFC again after the various rebase-rewrite series have settled and merged down...along with my other rebase cleanups that I was waiting on to avoid conflicts with GSoC stuff. > The whole point of "am -3" is to do _better_ than just "patch" with > minimum amount of information available on the pre- and post- image > blobs, without knowing the remainder of the tree that the patch did > not touch. It is not surprising that the heuristics that look at > the unchanging part of the tree to infer renames that may or may not > exist guesses incorrectly, either with false positive or negative. > In the context of "rebase", we always have all the trees that are > involved. We should be able to do better than "am -3".