git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Merge after rename

From
Jacob Keller <jacob.keller@gmail.com>
Date
Jul 10, 2015, 03:52 UTC
Message-ID
<CA+P7+xqzYjj6K=ws7nBN5RiMvYfQhCCZJCNvPPqBsbHkizqBng@mail.gmail.com>
In-Reply-To
<559EDD33.50906@ubuntu.com>
On Thu, Jul 9, 2015 at 1:44 PM, Phil Susi <psusi@ubuntu.com> wrote:
Show 11 quoted lines
> I'm trying to cherry pick an old change from an old branch onto the current
> master, and since the old change, the directory structure was altered and
> the modified files were moved.  Instead of detecting the new location of the
> file and applying the changes to it, git is re-adding the old file at the
> old location in its entirety.  How can I get it to correctly notice the
> rename and merge the changes in at the file's new location?
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hi Phil,

One way is to format-patch the original commit, and run it through a program like filterdiff, or edit the applied locations by hand. You might also be able to use the merge subtree option. https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging is where I would start.

For example, I would try something like
git cherry-pick -X subtree=path/to/strip -X subtree=path/to/add <commit>
You might also have success with
git cherry-pick --strategy=subtree
which attempts to guess. Hopefully this helps!

Regards, Jake

Previous: Phil Susi
Message 2 of 2 in “Merge after rename”
  1. Phil SusiJul 9, 2015
  2. Jacob KellerJul 10, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.