Re: git format-patch --break-rewrites broken in 2.9.3
On Thu, Aug 18, 2016 at 11:05:22AM -0400, Jeff King wrote:
Show 22 quoted lines
> On Thu, Aug 18, 2016 at 04:44:21PM +0200, Olaf Hering wrote:
>
> > This command used to create a diff which can be consumed by patch. But
> > at least with 2.9.3 it just gives a rename output:
> >
> > git format-patch \
> > --no-signature \
> > --stdout \
> > --break-rewrites \
> > --keep-subject \
> > 95fa0405c5991726e06c08ffcd8ff872f7fb4f2d^..95fa0405c5991726e06c08ffcd8ff872f7fb4f2d
> >
> >
> > What must be done now to get a usable patch?
>
> Probably --no-renames.
>
> Renames were enabled by default by 5404c11 (diff: activate diff.renames
> by default, 2016-02-25), which is in v2.9.0.
>
> I wonder if we should consider undoing that for format-patch, whose
> output may be consumed by non-git endpoints.
By the way, this probably has nothing to do with --break-rewrites in particular. It would come up for any case where git finds a rename. In the absence of --break-rewrites, that requires a path being deleted and one being added. But in this particular case, --break-rewrites turns a large change into a delete/add pair, which lets git find the rename.
So it's a necessary option to show the problem in _this_ instance, but there are other cases that would not need it.
-Peff