Also, instead of forking it on GitHub, he just reuploaded the whole thing again (https://github.com/fabiensanglard/Doom3-for-MacOSX-) so that others cannot easily merge these changes. And neither in his repo nor in his post, there is a reference to the original repo (https://github.com/TTimo/doom3.gpl).
Also, on the original repo, there were already a few fixes for Xcode4 and there is also a pull request with further fixes (https://github.com/TTimo/doom3.gpl/pull/13). I haven't checked it myself but it might actually work already.
Btw., further development is probably going on here: http://www.iodoom3.org/ (http://news.ycombinator.com/item?id=3277150) (https://github.com/TimeDoctor/iodoom3)
He responded in his comments:
> If not, the fork will remain buried as a Pull Request with no visibility at all.
Which is loads of bullshit. By design git is decentralized so upstream is a mere convention, where usually the closest to upstream is either the original author's repository or the most active repository.
If the guy did things properly, although inconvenient we could just do that to merge back, but apparently what he did was rewrite or recreate history in some way, so that SHA1s changed so it's not even possible to add remote. I guess that even with no common ancestor SHA1s one could still use rebase --onto to replay some part of his history.
Either way I can't tell because the repo is 404 now and I did not have a chance to browse it, let alone clone it.
PS: I like some of your ideas, like hiding forks that can be fast-forwarded (i.e they have no changes i.e their HEADs are members of the parent repo), and detecting that one has pushed a repo that is obviously a clone of another, although I'd rather have it be manual (like a message on the github's console saying "we detected that this repo could be a clone of that repo, do you want to mark it as a fork?")
git remote add d3mac https://github.com/fabiensanglard/Doom3-for-MacOSX-.git
git fetch d3mac
git merge d3mac/master
$ git fetch d3mac
warning: no common commits
$ git merge d3mac/master
[ many many conflicts ... ]
CONFLICT (add/add): Merge conflict in neo/ui/Winvar.h
Automatic merge failed; fix conflicts and then commit the result.
Just like his concern, I haven't tested building this on windows (VC 2010), so this repo needs to be cleaned up before it should be merged back into the main repo.