1. 07 Aug, 2017 1 commit
  2. 23 Apr, 2009 1 commit
  3. 31 Aug, 2007 1 commit
  4. 03 Jul, 2007 1 commit
  5. 04 Feb, 2007 1 commit
  6. 07 Feb, 2006 1 commit
    • Junio C Hamano's avatar
      read-tree --aggressive · 1b1fdf8c
      Junio C Hamano authored
      A new flag --aggressive resolves what we traditionally resolved
      with external git-merge-one-file inside index while read-tree
      3-way merge works.
      
      git-merge-octopus and git-merge-resolve use this flag before
      running git-merge-index with git-merge-one-file.
      Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
      1b1fdf8c
  7. 03 Oct, 2005 1 commit
    • Fredrik Kuivinen's avatar
      [PATCH] Enable and fix support for base less merges. · 88f8f0a5
      Fredrik Kuivinen authored
      Let the merge strategies handle the base less case if they are able to
      do it. It also fixes git-resolve.sh to die if no common ancestors
      exists, instead of doing the wrong thing. Furthermore, it contains a
      small independent fix for git-merge.sh and a fix for a base less code
      path in gitMergeCommon.py.
      
      With this it's possible to use
          git merge -s recursive 'merge message' A B
      to do a base less merge of A and B.
      
      [jc: Thanks Fredrik for fixing the brown-paper-bag in git-merge.
       I fixed a small typo in git-merge-resolve fix; 'test' equality
       check is spelled with single equal sign -- C-style double equal
       sign is bashism.]
      Signed-off-by: default avatarFredrik Kuivinen <freku045@student.liu.se>
      Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
      88f8f0a5
  8. 11 Sep, 2005 2 commits
    • Junio C Hamano's avatar
      Use Daniel's read-tree in the merge strategy 'resolve'. · 2276aa6c
      Junio C Hamano authored
      And rename the one Linus kept calling stupid, 'stupid'.
      Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
      2276aa6c
    • Junio C Hamano's avatar
      Multi-backend merge driver. · 91063bbc
      Junio C Hamano authored
      The new command 'git merge' takes the current head and one or more
      remote heads, with the commit log message for the automated case.
      
      If the heads being merged are simple fast-forwards, it acts the
      same way as the current 'git resolve'.  Otherwise, it tries
      different merge strategies and takes the result from the one that
      succeeded auto-merging, if there is any.
      
      If no merge strategy succeeds auto-merging, their results are
      evaluated for number of paths needed for hand resolving, and the
      one with the least number of such paths is left in the working
      tree.  The user is asked to resolve them by hand and make a
      commit manually.
      
      The calling convention from the 'git merge' driver to merge
      strategy programs is very simple:
      
       - A strategy program is to be called 'git-merge-<strategy>'.
      
       - They take input of this form:
      
      	<common1> <common2> ... '--' <head> <remote1> <remote2>...
      
         That is, one or more the common ancestors, double dash, the
         current head, and one or more remote heads being merged into
         the current branch.
      
       - Before a strategy program is called, the working tree is
         matched to the current <head>.
      
       - The strategy program exits with status code 0 when it
         successfully auto-merges the given heads.  It should do
         update-cache for all the merged paths when it does so -- the
         index file will be used to record the merge result as a
         commit by the driver.
      
       - The strategy program exits with status code 1 when it leaves
         conflicts behind.  It should do update-cache for all the
         merged paths that it successfully auto-merged, and leave the
         cache entry in the index file as the same as <head> for paths
         it could not auto-merge, and leave its best-effort result
         with conflict markers in the working tree when it does so.
      
       - The strategy program exists with status code other than 0 or
         1 if it does not handle the given merge at all.
      
      As examples, this commit comes with merge strategies based on
      'git resolve' and 'git octopus'.
      Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
      91063bbc