Okay, so this is what I came up with: https://github.com/enigma-dev/enigma-dev/commits/GL3.3CleanUp
I did this:
git checkout 83dc5dcd6d7b788aa673e395489160fb27f0bcfb (which is the commit just before the revert commit)
git merge -s ours 07ac18577f5f8007ac6d5e3b5282edafdfeeed02 (here I basically skip the revert commit (choose my changes over the ones in revert), moving the HEAD forward)
git merge -s ours f969248d94c46f6d6b95e2dd4928f5def99d46b4 (here I skip the pull request for the revert, which in Git is another commit, again moving the HEAD forward)
git merge master (here I update the whole thing to newest master)
There was about 20 file conflict I had to fix.
It's by no means pretty, but is it "satisfactory"? Because I think there is no prettier way to do this. I will still have to pollute our git history anyway. For example, in that failed commit I added new glew, which is 30k lines, then I reverted those 30k lines, and now I added again those 30k lines. Is git smart enough to understand that, or is there 1.6mb delta's now?
edit: It somehow didn't merge complete master.... git is such a clusterfuck sometimes. I end wasting hours just to get thing work and then develop for 10 minutes. I'll continue trying. What I learned from this experiance is this - NEVER use git revert function. Leave the master broken if you must, and the fix it there. Never for anything that is holy do it. You won't be able to revert that revert.
edit2: For some reason CompileSource files are totally different in master than they are in GL3.3CleanUp, while they shouldn't be. It leads me to believe the other files might be in the same situation, and thus I will probably revert tons of changes if I ever pushed that into master. So sadly I have failed. Any ideas on how to uncluster this f***?
I will try to explain as plain as possible (it's very hard to explain stuff in git, it's not meant to be easy). Imagine this tree (http://pastebin.com/b28HWZfi
master -- commit a -- commit b -- more commits ------------------------------------------ revert d -- commit e -- commit f --
| | merge d into master |
GL3.3Fixes branch \ commit c -- commit d --- / \ GL3.3Fixes branch with master changes
I want the "GL3.3Fixes branch with master changes".
Until this gets fixed I cannot do anything. There is a GUI extension I wanted to finish that I started months ago. But it got frozen because of this.
edit3: Nevermind, it's impossible to draw trees in this forum for some reason. Check here: http://pastebin.com/b28HWZfi