title: SVN: How to do feature-level merging without having to resolve conflicts repeatedly?
body: <p>I am working with SVN, and we are currently experiencing some pain in the deployment process doing "environment-level" merging. </p>
  
  <p>For example, we have feature branches, when those are finished on a local level, they get merged into a "DEV" branch to be deployed to our dev server, then after that level of testing, the DEV branch itself gets merged into Staging, then after that round, Staging branch gets merged into production. </p>
  
  <p>I have long suspected that a better way to go would be to use "feature-level" merging (e.g. using the example above, a deployment to Staging would involve taking all of the features that passed DEV testing and merging each of those <em>feature branches</em> into Staging. Dev and Staging would have no direct relationship.) </p>
  
  <p>To that end, I've been looking for examples of workflows online that might help ease some of our pain points, and I think I've found a nice one in a post from a team at UCLA, included below (I modified it slightly to illustrate my question - original is here: <a href="https://kb.ucla.edu/articles/ucla-moodle-workflow-analysis-using-git" rel="nofollow noreferrer">https://kb.ucla.edu/articles/ucla-moodle-workflow-analysis-using-git</a>)</p>
  
  <p>However, I'm concerned about what seems to me to be the possibility of duplicating work and making errors <strong>if we have to resolve the same conflict more than once</strong></p>
  
  <p>In the example below, let's assume for the sake of the argument that <strong>feature A has conflicts with feature C</strong>.</p>
  
  <p><strong>Unless I'm missing something, it seems to me that in this workflow, the conflicts between A and C will have to be resolved <em>three separate times</em> (noted by the X's in the diagram) - once on step 3 in develop, again on step 7 in stage, and a third time on step 12 when C enters the master branch after A</strong></p>
  
  <p>Is this actually the case? If so, what is the best way to handle it? Since it also seems that if you say "I'm tired of resolving conflicts three times" and merge in the resolution say in step 3 in the develop branch, well now you've tied A and C together, when A might not pass from develop->stage or stage->master.</p>
  
  <p>Is this just a fundamental pain point of doing feature-level merging?</p>
  
  <p><a href="https://i.stack.imgur.com/FH2Kz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/FH2Kz.png" alt="enter image description here"></a></p>