I want to be able to take a bunch of patches that were applied to one semi-related branch and appened them to the current branch, or better yet a new branch of the current. The bunch of patches will be selected by what they change; I should be able to graft all patches that modify some file, or modify some regular expression.
Here is what I mean:
,-----X---X---X---X--- ... --- "historical" branch
o
`--------------------Y "current" branch
\
`---Z---Z---... "working" branch
You start off at current
branch and run something like:
git-find historical --file some_file.c --or --re 'some pattern' \
| git-graft --new-branch working -
This will let me take the interesting subset of X
commits and apply them at some
point Y
. Should the patches X
cause conflicts with the current
branch, then
git-graft
needs to let the user resolve those conflicts a patch at a time. The
default is to apply onto the current
branch, however if desired it should be
possible to create the changes on a new, working
, branch. The result is a new
set of Z
commits, as shown above.