1. 10 Mar, 2018 4 commits
    • merge: virtual commit should be last argument to merge-base · b3c0d43c
      Our virtual commit must be the last argument to merge-base: since our
      algorithm pushes _both_ parents of the virtual commit, it needs to be
      the last argument, since merge-base:
      
      > Given three commits A, B and C, git merge-base A B C will compute the
      > merge base between A and a hypothetical commit M
      
      We want to calculate the merge base between the actual commit ("two")
      and the virtual commit ("one") - since one actually pushes its parents
      to the merge-base calculation, we need to calculate the merge base of
      "two" and the parents of one.
      Tyrie Vella committed
    • merge::trees::recursive: test for virtual base building · dc51d774
      Virtual base building: ensure that the virtual base is created and
      revwalked in the same way as git.
      Edward Thomson committed
    • merge: reverse merge bases for recursive merge · b2b37077
      When the commits being merged have multiple merge bases, reverse the
      order when creating the virtual merge base.  This is for compatibility
      with git's merge-recursive algorithm, and ensures that we build
      identical trees.
      
      Git does this to try to use older merge bases first.  Per 8918b0c:
      
      > It seems to be the only sane way to do it: when a two-head merge is
      > done, and the merge-base and one of the two branches agree, the
      > merge assumes that the other branch has something new.
      >
      > If we start creating virtual commits from newer merge-bases, and go
      > back to older merge-bases, and then merge with newer commits again,
      > chances are that a patch is lost, _because_ the merge-base and the
      > head agree on it. Unlikely, yes, but it happened to me.
      Edward Thomson committed
  2. 09 Feb, 2017 1 commit
  3. 01 Jan, 2017 1 commit
  4. 26 May, 2016 1 commit
  5. 17 Mar, 2016 8 commits
  6. 07 Mar, 2016 1 commit
  7. 12 Feb, 2016 1 commit
  8. 11 Feb, 2016 1 commit
  9. 25 Nov, 2015 12 commits
  10. 22 Oct, 2015 1 commit
  11. 05 Oct, 2015 2 commits
  12. 19 Sep, 2015 2 commits
  13. 28 Aug, 2015 1 commit
  14. 12 Jul, 2015 1 commit
  15. 07 Jul, 2015 1 commit
  16. 22 Jun, 2015 1 commit
  17. 16 Jun, 2015 1 commit