git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
* Cherry pick a commit but with files in another location
@ 2020-04-11 11:21 Ani Sinha
  2020-04-11 12:21 ` Martin Ågren
  0 siblings, 1 reply; 5+ messages in thread
From: Ani Sinha @ 2020-04-11 11:21 UTC (permalink / raw)
  To: git

Hi,

I have an use case where I need to cherry pick a change from one branch to another. The change will apply cleanly but the files in the branch  where I want to cherry pick the co mit to have been moved under a different directory. So simple cherry pick will result in conflicts. Is there a clean way to cherry pick in this case? Is there an option to provide -p0, -p1 etc to the patch?

Thanks
Ani 

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

* Re: Cherry pick a commit but with files in another location
  2020-04-11 11:21 Cherry pick a commit but with files in another location Ani Sinha
@ 2020-04-11 12:21 ` Martin Ågren
       [not found]   ` <b26f041f-82d5-450f-998d-5a5c557a7994@Spark>
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Ågren @ 2020-04-11 12:21 UTC (permalink / raw)
  To: Ani Sinha; +Cc: Git Mailing List

Hi Ani,

On Sat, 11 Apr 2020 at 13:33, Ani Sinha <ani@anirban.org> wrote:
>
> I have an use case where I need to cherry pick a change from one branch
> to another. The change will apply cleanly but the files in the branch
> where I want to cherry pick the co mit to have been moved under a
> different directory. So simple cherry pick will result in conflicts. Is
> there a clean way to cherry pick in this case? Is there an option to
> provide -p0, -p1 etc to the patch?

I just tried the following commands. Admittedly, this example is a bit
silly, but at least for me, Git does handle the move just fine. Does
this work for you?

  mkdir test
  cd test
  git init
  mkdir olddir
  echo old >olddir/file
  git add olddir/
  git commit -m Initial
  git mv olddir newdir
  git commit -m Move
  echo new >newdir/file
  git commit newdir/file -m Change
  git checkout -b my-branch HEAD~2 # pre-move
  git cherry-pick master
  cat olddir/file

What kind of conflicts do you get in your real-world use case?

Martin

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

* Re: Cherry pick a commit but with files in another location
       [not found]   ` <b26f041f-82d5-450f-998d-5a5c557a7994@Spark>
@ 2020-04-11 12:42     ` Martin Ågren
  2020-04-11 13:25       ` Ani Sinha
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Ågren @ 2020-04-11 12:42 UTC (permalink / raw)
  To: Ani Sinha; +Cc: Git Mailing List

Hi,

On Sat, 11 Apr 2020 at 14:24, Ani Sinha <ani@anirban.org> wrote:
> On Apr 11, 2020, 17:51 +0530, Martin Ågren <martin.agren@gmail.com>, wrote:
>
> > On Sat, 11 Apr 2020 at 13:33, Ani Sinha <ani@anirban.org> wrote:
>
> > > I have an use case where I need to cherry pick a change from one branch
> > > to another. The change will apply cleanly but the files in the branch
> > > where I want to cherry pick the co mit to have been moved under a
> > > different directory. So simple cherry pick will result in conflicts. Is
> > > there a clean way to cherry pick in this case? Is there an option to
> > > provide -p0, -p1 etc to the patch?
>
>
> > I just tried the following commands. Admittedly, this example is a bit
> > silly, but at least for me, Git does handle the move just fine. Does
> > this work for you?
> >
> > mkdir test
> > cd test
> > git init
> > mkdir olddir
...
> > git mv olddir newdir
...

> > What kind of conflicts do you get in your real-world use case?

> My usecase is slightly different. The files I want to patch has been
> moved under a new subdirectory which is under the original root
> directory. So in order to patch, I need to add a new prefix to the patch
> manually.

I'm not able to fully guess your situation from this, but I wonder about
one thing: Do you use "git cherry-pick", "git am" or "git apply"? (Or
something else entirely?) Are you aware of "-p<n>" for "git apply"
(and "--directory=<root>"?) and are wondering what similar options are
available with "git cherry-pick"?

I still don't fully understand what you're doing and what you're seeing,
so it's hard to get a good picture of the problem.

I'm about to leave, so if I stay silent for several hours, that's why. :)

Martin

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

* Re: Cherry pick a commit but with files in another location
  2020-04-11 12:42     ` Martin Ågren
@ 2020-04-11 13:25       ` Ani Sinha
  2020-04-13  5:43         ` Martin Ågren
  0 siblings, 1 reply; 5+ messages in thread
From: Ani Sinha @ 2020-04-11 13:25 UTC (permalink / raw)
  To: Martin Ågren; +Cc: Git Mailing List



> On Apr 11, 2020, at 6:13 PM, Martin Ågren <martin.agren@gmail.com> wrote:
> 
> Do you use "git cherry-pick", "git am" or "git apply"?

Yes


> (Or
> something else entirely?) Are you aware of "-p<n>" for "git apply"
> (and "--directory=<root>"?) and are wondering what similar options are
> available with "git cherry-pick"?
Yes was wondering if similar options exist for cherry pick. I wanted to use cherry-pick  so that cherry picks can be tracked by git.

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

* Re: Cherry pick a commit but with files in another location
  2020-04-11 13:25       ` Ani Sinha
@ 2020-04-13  5:43         ` Martin Ågren
  0 siblings, 0 replies; 5+ messages in thread
From: Martin Ågren @ 2020-04-13  5:43 UTC (permalink / raw)
  To: Ani Sinha; +Cc: Git Mailing List

On Sat, 11 Apr 2020 at 15:25, Ani Sinha <ani@anirban.org> wrote:
>
> > On Apr 11, 2020, at 6:13 PM, Martin Ågren <martin.agren@gmail.com> wrote:
> >
> > Do you use "git cherry-pick", "git am" or "git apply"?
>
> Yes

I still don't understand exactly what it is you're doing.

> > (Or
> > something else entirely?) Are you aware of "-p<n>" for "git apply"
> > (and "--directory=<root>"?) and are wondering what similar options are
> > available with "git cherry-pick"?
>
> Yes was wondering if similar options exist for cherry pick. I wanted
> to use cherry-pick  so that cherry picks can be tracked by git.

Are you working on some repo that is publicly available, e.g., on
github/gitlab? If so, you could post a link.

What is it that you try doing? You could post the commands you execute.

What happens? You could post error messages.

What do you expect *should* happen? You could try to describe your
expectations.

Without that kind of information, it is unfortunately hard to help you.

One final thought: Have you actually tried cherry-picking the way you
want to, and have you actually encountered a problem? Or are you looking
for solutions to a problem that you're not sure you're having?

Martin

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

end of thread, other threads:[~2020-04-13  5:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-11 11:21 Cherry pick a commit but with files in another location Ani Sinha
2020-04-11 12:21 ` Martin Ågren
     [not found]   ` <b26f041f-82d5-450f-998d-5a5c557a7994@Spark>
2020-04-11 12:42     ` Martin Ågren
2020-04-11 13:25       ` Ani Sinha
2020-04-13  5:43         ` Martin Ågren

Code repositories for project(s) associated with this 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).