Re: subtle bug in git-am
On Wed, Apr 8, 2020 at 12:29 PM Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
> On Wed, Apr 8, 2020 at 4:19 AM brian m. carlson
> <sandals@crustytoothpaste.net> wrote:
> > On 2020-04-07 at 18:48:23, Andy Shevchenko wrote:
Show 28 quoted lines
> > > What I would like to do is to apply patch from one repository to another with
> > > same files but *different directory structure*.
> > >
> > > When I try to change directory in the target repo to the folder of files, I run
> > > git-am -p5 my_cool_patch.patch.
> > >
> > > Instead of the expected result (files and their contents is the same!) I got
> > > fileXXX is not in index.
> > >
> > > So, I think this is a bug, because -p<n> use in git-am makes little to no sense
> > > without above feature.
> >
> > So if I understand correctly, you're expecting git am to apply relative
> > to the current directory in the repository. I have also expected that
> > behavior in the past, and found it surprising when it did not.
> >
> > What git am does is apply relative to the root of the repository. If
> > you'd instead like to apply to a specific subdirectory of the
> > repository, you can use the --directory option to specify to which
> > directory your patch should apply.
> >
> > This is the behavior of git apply, which underpins git am. However,
> > outside of a repository, it _does_ apply relative to the current
> > directory, since there's no repository root to consider. I, at least,
> > found this confusing, but that's how it works.
>
> Thank you for the prompt reply with useful information. I will try it
> whenever I will need similar flow again.
Today I have needed something similar and I checked proposed w/a and it works! Thanks!
--
With Best Regards,
Andy Shevchenko