git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* subtle bug in git-am
@ 2020-04-07 18:48 Andy Shevchenko
  2020-04-08  1:18 ` brian m. carlson
  0 siblings, 1 reply; 4+ messages in thread
From: Andy Shevchenko @ 2020-04-07 18:48 UTC (permalink / raw)
  To: git; +Cc: andy.shevchenko

Hi!

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.

Perhaps I didn't understand something.
Please, advise.

$ git version
git version 2.25.1


-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: subtle bug in git-am
  2020-04-07 18:48 subtle bug in git-am Andy Shevchenko
@ 2020-04-08  1:18 ` brian m. carlson
  2020-04-08  9:29   ` Andy Shevchenko
  0 siblings, 1 reply; 4+ messages in thread
From: brian m. carlson @ 2020-04-08  1:18 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: git, andy.shevchenko

[-- Attachment #1: Type: text/plain, Size: 1329 bytes --]

On 2020-04-07 at 18:48:23, Andy Shevchenko wrote:
> Hi!
> 
> 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.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: subtle bug in git-am
  2020-04-08  1:18 ` brian m. carlson
@ 2020-04-08  9:29   ` Andy Shevchenko
  2020-04-30 14:26     ` Andy Shevchenko
  0 siblings, 1 reply; 4+ messages in thread
From: Andy Shevchenko @ 2020-04-08  9:29 UTC (permalink / raw)
  To: brian m. carlson, Andy Shevchenko, git, Andy Shevchenko

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:
> > Hi!
> >
> > 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.


-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: subtle bug in git-am
  2020-04-08  9:29   ` Andy Shevchenko
@ 2020-04-30 14:26     ` Andy Shevchenko
  0 siblings, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2020-04-30 14:26 UTC (permalink / raw)
  To: brian m. carlson, Andy Shevchenko, git, Andy Shevchenko

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:

> > > 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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-04-30 14:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-07 18:48 subtle bug in git-am Andy Shevchenko
2020-04-08  1:18 ` brian m. carlson
2020-04-08  9:29   ` Andy Shevchenko
2020-04-30 14:26     ` Andy Shevchenko

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).