title: Merging subtree changes - fatal: invalid path 'somefile_BASE_20704.cs'
body: <p>I have three repos - names changed for clarity:</p>
  
  <p><code>SharedStuff</code>, <code>ProjectA</code> and <code>ProjectB</code></p>
  
  <p>Both of the projects are using git-subtree to maintain a local copy of <code>SharedStuff</code>.  They both have made local changes that I'm trying to merge up centrally, test, then merge back out to each again.</p>
  
  <p>I've run this on the ProjectA repo:</p>
  
  <p><code>git subtree split --prefix=SharedStuff -b SharedStuff_from_ProjectA --rejoin</code></p>
  
  <p>...then pushed that to the <code>SharedStuff</code> repo, resolved a few simple conflicts, merged it up.</p>
  
  <p>Now I've run this on the ProjectB repo:</p>
  
  <p><code>git subtree split --prefix=platform/SharedStuff -b SharedStuff_from_Project_B --rejoin</code> </p>
  
  <p>...and again pushed that to the <code>SharedStuff</code> repo in a new branch.  The problem occurs when I'm trying to merge those changes in.</p>
  
  <p>In the current case, I switch to the <code>SharedStuff_from_Project_B</code> branch, then <code>git merge master</code> - but I immediately get all changed files listed as <strong>add/add</strong> conflicts.  When I run <code>git mergetool</code>, each one has an error like this:</p>
  
  <pre><code>Merging:
  somefile.xyz
  
  Normal merge conflict for 'somefile.xyz':
    {local}: created file
    {remote}: created file
  fatal: invalid path './somefile.xyz_BASE_20704.cs'
  </code></pre>
  
  <p>(Of course, if I try the other way around - to merge <code>SharedStuff_from_Project_B</code> into <code>master</code> - I get the same kinds of conflicts, just reversed.  Still add/add).</p>
  
  <p>My guess is that something might be wrong in ProjectB's history, causing the appearance of add/adds.  I'm not sure how to further diagnose this, though - what can I do?</p>
  
  <p><em>Edit</em>: there was a previous subtree "rejoin" commit in <code>ProjectB</code>, but the changes weren't merged into <code>SharedStuff</code> at that point it seems.  But, re-running <code>git subtree split</code> with <code>--ignore-joins</code> produces the same problem - lots of <code>add/add</code> merge conflicts, despite the history of that split subtree branch going back to when the <code>SharedStuff</code> was first put into <code>ProjectB</code>. :(</p>
  
  <p><em>Edit</em>: Also <code>git merge-base</code> between the split subtree from <code>ProjectB</code> and <code>master</code> on <code>SharedStuff</code> doesn't give any results.  I'm not sure how this came to be or how to resolve?</p>