title: svn: merging branches
body: <p>I'm a bit unclear about merging branches in SVN and was wondering if someone could explain...</p>
  
  <pre><code>project1
     trunk
        foo.c
        bar.c
        baz.c
     branches
     tags
  project2
     trunk
        foo.c
        quux.c
        boing.c
     branches
        project1-offshoot
           foo.c
           bar.c
           baz.c
           boing.c
     tags
  </code></pre>
  
  <p>Suppose we have the following situation. There's a "project1" in our svn repository. Bob starts a new project "project2" and starts working under the trunk. Then Charlie says "Wait a minute! That's sort of like project1!" so he tells Bob he'll create a branch for project2 called "project1-offshoot" (<code>svn copy</code> from project1/trunk) and modify it appropriately to get ready for merging with project2.</p>
  
  <p><strong>What's the appropriate action for Bob and Charlie to take to merge project2/branches/project1-offshoot into project2/trunk?</strong></p>
  
  <p>Files "foo.c" and "boing.c" each have two independent histories (foo from project1/trunk -> project2/branches/project1-offshoot as well as from project2/trunk; boing from project2/trunk and from project2/branches/project1-offshoot). <strong>Can a file in SVN have two ancestors?</strong> Or are you forced to choose one as the ancestor, and then do a textual merge from another file without maintaining any link to the source of that file?</p>