Would you kindly clarify?  Branching and merging in svn seems perfectly obvious to me:<p><pre><code>  $ cd trunk-wc
  $ svn cp ^&#x2F;trunk ^&#x2F;branches&#x2F;my-topic     # create my-topic branch
  $ svn switch ^&#x2F;branches&#x2F;my-topic         # switch working copy to my-topic
  $ # Hack away
  $ svn commit -m &quot;My awesome new feature.&quot;
  $ svn switch ^&#x2F;trunk                     # switch working copy to trunk
  $ svn merge ^&#x2F;branches&#x2F;my-topic ^&#x2F;trunk  # merge topic branch changes to trunk (a)
  $ svn commit -m &quot;Merge awesome feature from my-topic.&quot;
</code></pre>
In step (a), resolve any conflicting files with svn resolve; to start over, do svn revert [-R] (granted, new files will be left behind and there&#x27;s no git clean equivalent AFAIK).  With the exception of svn cp, all the commands are self-describing (and with svn cp, someone argued in the BK open-sourcing thread that &quot;a branch is a copy&quot; model is fairly intuitive for even non-technical users).<p>I concede that git is more powerful and supports different branch &#x2F; merge workflows than svn, but svn&#x27;s hardly horrible.