Skip to contentSkip to conversation

Merge after rename

DISCUSSION Phil Susi 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore

Phil Susi

author
#0 lore raw

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?

#1 lore raw
Quoted 11 lines · Phil Susi

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 [email protected]
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