Re: [PATCH] transplant: move a series of commits to a different parent
From: Steffen Prohaska <hidden>
Date: 2016-06-15 22:43:18
On Jun 25, 2007, at 9:16 AM, Johannes Sixt wrote:
Steffen Prohaska wrote:quoted
On Jun 23, 2007, at 11:04 PM, Alex Riesen wrote:quoted
quoted
git-transplant.sh <onto> <from> <to> transplant starts with the contents of <onto> and puts on top of it the contents of files if they are touched by the series of commits <from>..<to>. If a commit touches a file the content of this file is taken as it is in the commit. No merging is performed. Original authors, commiters, and commit messages are preserved.[...] # detached head git checkout $(git rev-parse onto) && git format-patch --stdout --full-index from..to|git am -3No. This one tries to apply the _changes_ between from..to. What I need is the resulting _content_ of files modified between from..to.Install a graft that points the parent of "from" to "onto", then run git-filter-branch. Like so:
I stumbled over the grafts yesterday and thought that this may be a way...
$ echo "$(git-rev-parse from^0) $(git-rev-parse onto^0)" \
> .git/info/grafts
$ git-filter-branch new-to onto..to... ok this is interesting: git-filter-branch will take the info from grafts to create its new commits. The new commits will contain all information independent of the grafts file, right? ... but, I'm not convinced that this is what I need. I need to mix the tree of onto with the files _modified_ between from..to. Taking _all_ files from the commits between from..to is _wrong_. And I think that is what the command you proposed would do. My feeling is that repairing a repository resulting from a broken cvsimport is a bit more complex than what the existing tools provide out-of-the box. Steffen