Matt Finnicum wrote:
What I do is to follow along with things on the shortlog: http://source.winehq.org/git/?p=wine.git;a=shortlog
Lets say you want to move your current branch to my recent patch "riched20: Rewrite of scrolling and some redrawing code." - you'd click the link "commit" to the right of it. In the page that you'll be taken to, you'll see a line like this: commit abecd9e393925e008449a80ec14682790b29042c
you can then do a "git reset --hard abecd9e393925e008449a80ec14682790b29042c"
and your git will be moved to the point in time right after that commit. If you then want to manually apply a patch, click "commitdiff" to the right of it's entry in the shortlog, followed by "plain" on the top - this will take you to a plaintext diff of the patch, which you could save to a file and apply with the patch command. ("patch -p1 < thepatch.diff" usualy works well for me)
There's easier ways to do the second bit. 1) Use git cherry-pick git branch master-20060913 git reset --hard abecd9e393925e00 #examine the log for commits git log master-20060913..abecd9e39392 #pull in commits git cherry -r 112810a480aaee4d6d8 git cherry -r aaca30cf039c227e #etc 2) Use git format-patch to get all the patches in the tree before resetting: # put them all in one file named mb git format-patch --stdout abecd9e39392 > mb # or create multiple files git format-patch abecd9e393925e008 Then reset (remember to have a clean tree!) git reset --hard abecd9e393925e Then edit "mb" and "git am" the patches you want: git am mb You don't need the full SHA1 ID... just enough to make it unique in the tree. Mike