Because the diagrams for hg are very simple, there is a really simple way to do branching that obviously works and commits a relatively forgivable sin: just `cp -a` the folder.<p>Now, I know that that&#x27;s in essence an admission of defeat! I&#x27;m not pretending that it&#x27;s anything less than that. However, <i>this is also the easiest explanation of, and model for, branching that anyone has ever created.</i> The explanation of branching which the nontechnical user immediately understood was, in fact, just having a couple of these repository-folders sitting side by side with different names, `current_version` and `new_feature`. It is a model of branching that is so innocent and pure and unsullied by the world that a nontechnical person <i>got it</i> with only a couple of questions.<p>Like I said, I&#x27;m actually employed at an SVN shop, where branches are other folders in the root folder and the workflow is less &quot;push this to the testing server&quot; and more &quot;commit to the repository, SSH into the testing server, and then update the testing server.&quot; But that Hg model <i>resonated</i> with someone who <i>doesn&#x27;t know computers</i>. To me, that was a moment of amazement.<p>I&#x27;m not even saying which one is <i>better</i> really; I like Git branches too! It&#x27;s just that I&#x27;m astonished that the more confusing DVCS is winning. Most peoples&#x27; approach to Git is &quot;I am just going to learn a couple of fundamentals and ask an expert to set up something useful for me.&quot; I would guess that most Git users don&#x27;t branch much; they never learned that aspect to it. I&#x27;m really surprised that software developers aren&#x27;t more the sort to really say &quot;why am I doing this?&quot; and to prefer systems which make it easier to answer those questions with pretty pictures.