title: Checkout multiple branches in one pipeline
body: <p>I'm trying to get two different branches in one pipeline so that I can compare directories. When I do it like this it works.</p>
  <pre><code>- checkout: self
  - checkout: 'git://MyRepo/MyProject'
    path: master
  </code></pre>
  <p>The problem becomes when I need to checkout the branch for pull request, not the merge branch that is created for the pull request automatically by the server. So I do it like this:</p>
  <pre><code>- checkout: 'git://MyRepo/MyProject@$(System.PullRequest.SourceBranch)'
    path: s
  - checkout: 'git://MyRepo/MyProject@master'
    path: master
  </code></pre>
  <p>The issue here is that the second checkout moves the data from the source (<code>$(Build.SourcesDirectory)</code>) directory to the <code>master</code> directory.</p>
  <blockquote>
  <p>Repository is current at 'E:\vsts-buildser98-agent03_work\230\s\MyProject', move to
  'E:\vsts-buildser98-agent03_work\230\master'.<br />
  Repository will be located at 'E:\vsts-buildser98-agent03_work\230\master'.</p>
  </blockquote>
  <p>This cause fail in build and actually everything I need to do before the compare. Moreover the <code>Post-job: Checkout</code> fails since the first directory doesn't exist anymore.</p>