HOWTO: Bringing in lots of correctly cherry-picked patches
Andrew Bartlett
abartlet at samba.org
Fri Jan 25 04:11:21 MST 2013
On Fri, 2013-01-25 at 22:04 +1100, Andrew Bartlett wrote:
> We like to have patches in v4-0-test be marked as cherry-picked from
> master, so we know where they came from for context.
>
> I like using gitk to pick out my changes, as it helps me find and review
> changes. However, it can't cherry-pick with -x, which we need. There
> is no way to make -x the default again (it once was).
>
> So, what I did was (from memory, but written down in case it helps
> someone else, or for me to find later):
>
> git cherry-pick --abort
> git rebase --abort
> git clean -x -f -d
> git checkout origin/master -b to-cherrypick-for-4.0
>
> used gitk to reset to samba-4.0.0rc1
> git reset --hard samba-4.0.0rc1
> git cherry-pick HEAD..origin/master
> (wait a very long time, disk murdered by fsync)
What I get for doing this from memory is to have that line incorrect.
It is of course:
git cherry-pick HEAD..origin/master -x
> git checkout -b v4-0-build-fixes
> git rebase -i origin/v4-0-test
>
> This lets me select patches easily, in order, skipping some if required.
> In particular, if a patch fails 'git rebase --skip' works, while if you
> did the same with a range cherry-pick, you can't --skip. Likewise, it
> is smart about patches already in the tree, not even showing them in the
> rebase -i window. You can also easily edit for conflicts in the usual
> rebase way.
>
> git format-patch origin/v4-0-test..HEAD --stdout > build-fixes-4-0.patch
>
> Then I upload these into bugzilla. The resulting commits have the
> cherry-pick markers we need, because to the rebase these are just commit
> text, and so are not altered.
>
> Andrew Bartlett
>
--
Andrew Bartlett http://samba.org/~abartlet/
Authentication Developer, Samba Team http://samba.org
More information about the samba-technical
mailing list