title: Rename a diverged folder, and merge back to master
body: <p>In the codebase I'm working on we have a legacy application ("<code>OldApp</code>") that was recently majorly uplifted and upgraded ("<code>NewApp</code>") in its own branch.</p>
  
  <p>Now, it has been decided that we can't immediately replace <code>OldApp</code> with <code>NewApp</code>, so we'll need to continue supporting <code>OldApp</code> for a while until we can get enough customers migrated to <code>NewApp</code>.</p>
  
  <p>Since both share the same backend server code, keeping things in two separate branches isn't overly maintainable in the long term, (and we don't necessarily want to merge changes in <code>OldApp</code> over the top of <code>NewApp</code> when the codebase has diverged) so we'd like to get everything merged back into our master branch once <code>NewApp</code> reaches release.</p>
  
  <p>So, in <code>Master</code> we have</p>
  
  <p><code>ClientApps\ClientApplication</code> - which contains the Old code</p>
  
  <p>and in <code>NewBranch</code> we have</p>
  
  <p><code>ClientApps\ClientApplication</code> - which contains the new code (which is based on the old)</p>
  
  <p>what we want to end up with is a single branch containing</p>
  
  <p><code>ClientApps\OldApp</code>  - containing the files and history of ClientApplication from master</p>
  
  <p>and </p>
  
  <p><code>ClientApps\NewApp</code> - containing the files and history from the new branch.</p>
  
  <p>How is this achievable with git?  I basically don't want to end up accidentally merging the new code into the old codebase.  Whilst I could just take a copy of the whole newapp folder and paste it back into master, that would lose all history, which is something I'd rather not have to do.</p>