Hi guys! 

We have about 30 extensions in our platform and we really try hard not to modify MediaWiki and the extensions that weren't made by us. Unfortunately sometimes we have to modify them and even more regretfully we don't send the patches to vendors immediately. 
The result is obvious and sad - the vendors continue to develop their extensions and at one inevitable moment we have to deal with upgrading and merging. :-( 

We're using git to store all the code and it doesn't allow the nested .git directories to be presented in the same project. 

How do you deal with that? Do you use git submodules, separate repositories for the patched extensions or some fancy policy and documentation? 

-----
Yury Katkov, WikiVote