title: git multi master setup?
body: <p>I have been tasked with configuring the following setup.</p>
  
  <p>Currently, we have an internal canonical repo for an opensource project. We have a post-receive hook that pushes any updates to a remote repository exposed to the public.</p>
  
  <p>Joe Public can pull from the public repo.</p>
  
  <p>No one pushes to the remote repo except the post-receive hook</p>
  
  <p>We have quite a few users working on the code internally and I really don't want to mess with the workflow that they have already working.</p>
  
  <p>internal users check the code out from the internal canonical repo and commit to the same.</p>
  
  <p>external devs have to submit patches and then an internal user will commit for them (after review).</p>
  
  <p>At this point we want to start allowing some external devs to have commit access to the repository.</p>
  
  <p>This means making the remote repo canonical.</p>
  
  <p>It also means changing the workflow for users. Unless the collective here can come up with something I am missing with regard to git.</p>
  
  <p>Quick diagram of the current workflow.</p>
  
  <p>INTERNAL USER.</p>
  
  <p>clone from internal repo. -> monkey with code -> push to internal repo -> post-receive hook pushed to remote repo.</p>
  
  <p>EXTERNAL USER.</p>
  
  <p>clone from external repo. -> monkey with code -> submit patch via mailing list -> Internal User pushes code to internal repo -> post-receive hook pushed to remote repo.</p>
  
  <p>NEW WORKFLOW IDEALLY!!</p>
  
  <p>INTERNAL USER. </p>
  
  <p>clone from internal repo. -> before clone is provided pre-receive hook makes certain we have an updated mirror from the remote -> monkey with code -> push to internal repo -> pre-receive hook proxies the commit to the remote repo and syncs the 2.</p>
  
  <p>EXTERNAL USER.</p>
  
  <p>clone from remote repo. -> monkey with code -> push to remote repo.</p>
  
  <p>This is kind of like a multi master setup. Where you can push code to either repo and pull code from either repo.</p>
  
  <p>Some other caveats.</p>
  
  <p>The internal repo can push and pull from the remote repo. 
  The remote repo <strong>cannot</strong> reach the internal repo.</p>
  
  <p>What do you think? </p>