title: DVCS Repo Design - separate dev from stable using branches or separate repos?
body: <p>I'm working on a "plan of action" at my job for migrating our source control from SourceSafe 6.0 (ugh) to a DVCS like git or Mercurial (preferably git ATM).  Right now I am working on the future repository design, i.e. branch layout and how to configure the 'central'/blessed repo(s).</p>
  
  <p>Now, insofar I have only really used git as a means to push hobby open source code to <a href="https://github.com" rel="nofollow noreferrer">GitHub</a> and more recently for keeping my own private repo at work so that I have more fine-grained control over my code revisions than SourceSafe allows.  Unfortunately I have yet to experience a wide gamut of branching/merging scenarios or other semi-complex git usage in my repos besides using simple feature branches.  In other words, I don't have a lot of overall experience with DVCS', so I don't think I can predict the typical workflow we will use here and therefore am unable to create a matching repository design on my own.</p>
  
  <p>So instead, I have spent a lot of time reading other people's git workflows and trying to best apply those strategies to how we release code at my job.  I figure it's a place to start anyway, and we can change it as we go along.</p>
  
  <p>Now, after looking at many git workflows, I am really liking a particular one <a href="http://nvie.com/posts/a-successful-git-branching-model/" rel="nofollow noreferrer">outlined by Vincent Driessen</a>, which seems to have a very clean branch layout that is a near-fit for how we do deployments at work (or should, anyway):</p>
  
  <h2>Separate Dev/Stable Using Branches</h2>
  
  <hr>
  
  <p><img src="https://i.stack.imgur.com/PJQaE.png" alt="Separate Dev/Stable Using Branches"></p>
  
  <p>However, I admit to being a little confused after seeing a little different example on <a href="http://hginit.com/05.html" rel="nofollow noreferrer">Joel Spolsky's HgInit site</a>, which seems to focus more on separate repositories rather than branches for separating dev and stable code:</p>
  
  <h2>Separate Dev/Stable Using Repos</h2>
  
  <hr>
  
  <p><img src="https://i.stack.imgur.com/ma1TX.png" alt="Separate Dev/Stable Using Repos"></p>
  
  <h2>Questions</h2>
  
  <hr>
  
  <p>Is this repository-focused separation layer simply a Mercurial thing that isn't used much with git?  If not, then what are the advantages/disadvantages to using this method over the use of branches for separating dev/stable code?  Or am I simply completely misunderstanding what is going on here? :-)</p>
  
  <p>Any input would be appreciated; I apologize in advance if this question is a waste of time due to my being steeped in ignorance.</p>