]> source.dussan.org Git - jgit.git/commitdiff
Make recursive merge strategy the default merge strategy 91/11891/2
authorMatthias Sohn <matthias.sohn@sap.com>
Mon, 25 Mar 2013 02:39:58 +0000 (03:39 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Mon, 15 Apr 2013 19:46:12 +0000 (21:46 +0200)
Use recursive merge as the default strategy since it can successfully
merge more cases than the resolve strategy can. This is also the default
in native Git.

Change-Id: I38fd522edb2791f15d83e99038185edb09fed8e1
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/MergeTest.java
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java
org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java
org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java
org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java
org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java

index d0b363baa9ebbdfb16720aabd2f600c273e5ffa8..8c5066af5fe58129385c30c400795c0c8a7a42a8 100644 (file)
@@ -97,7 +97,7 @@ public class MergeTest extends CLIRepositoryTestCase {
                git.add().addFilepattern("side").call();
                git.commit().setMessage("side commit").call();
 
-               assertEquals("Merge made by the '" + MergeStrategy.RESOLVE.getName()
+               assertEquals("Merge made by the '" + MergeStrategy.RECURSIVE.getName()
                                + "' strategy.", execute("git merge master")[0]);
        }
 
index 0a149016e6b9155ad434603152275538a387bdc4..24794e75f2f160fa3f9bbfb8cf9b04aebaee5e76 100644 (file)
@@ -75,7 +75,7 @@ class Merge extends TextBuiltin {
        @Option(name = "--no-commit", usage = "usage_noCommit")
        private boolean noCommit = false;
 
-       private MergeStrategy mergeStrategy = MergeStrategy.RESOLVE;
+       private MergeStrategy mergeStrategy = MergeStrategy.RECURSIVE;
 
        @Argument(required = true)
        private String ref;
index dca7197d180bbd4eab244a37a9176ff32cdce6a5..d5d95592960ac03c0df9017b9d2e5f9323a5d12a 100644 (file)
@@ -150,7 +150,7 @@ public class CherryPickCommand extends GitCommand<CherryPickResult> {
                                String cherryPickName = srcCommit.getId().abbreviate(7).name()
                                                + " " + srcCommit.getShortMessage(); //$NON-NLS-1$
 
-                               ResolveMerger merger = (ResolveMerger) MergeStrategy.RESOLVE
+                               ResolveMerger merger = (ResolveMerger) MergeStrategy.RECURSIVE
                                                .newMerger(repo);
                                merger.setWorkingTreeIterator(new FileTreeIterator(repo));
                                merger.setBase(srcParent.getTree());
index 8f6e9cbb5d4706128ac38566606485ffb7c30e3c..509203e528fde64c6ccda9a3b9f58e0aafdbcced 100644 (file)
@@ -95,7 +95,7 @@ import org.eclipse.jgit.util.StringUtils;
  */
 public class MergeCommand extends GitCommand<MergeResult> {
 
-       private MergeStrategy mergeStrategy = MergeStrategy.RESOLVE;
+       private MergeStrategy mergeStrategy = MergeStrategy.RECURSIVE;
 
        private List<Ref> commits = new LinkedList<Ref>();
 
index be8f66de370b66babf08dc6de4a23fda47134cf2..c3922099d0744c0fc6360f5431d0558e49b0eeaf 100644 (file)
@@ -160,7 +160,7 @@ public class RevertCommand extends GitCommand<RevCommit> {
                                String revertName = srcCommit.getId().abbreviate(7).name()
                                                + " " + srcCommit.getShortMessage(); //$NON-NLS-1$
 
-                               ResolveMerger merger = (ResolveMerger) MergeStrategy.RESOLVE
+                               ResolveMerger merger = (ResolveMerger) MergeStrategy.RECURSIVE
                                                .newMerger(repo);
                                merger.setWorkingTreeIterator(new FileTreeIterator(repo));
                                merger.setBase(srcCommit.getTree());
@@ -194,14 +194,15 @@ public class RevertCommand extends GitCommand<RevCommit> {
                                                                merger.getBaseCommit(0, 1),
                                                                new ObjectId[] { headCommit.getId(),
                                                                                srcParent.getId() },
-                                                               MergeStatus.FAILED, MergeStrategy.RESOLVE,
+                                                               MergeStatus.FAILED, MergeStrategy.RECURSIVE,
                                                                merger.getMergeResults(), failingPaths, null);
                                        else
                                                failingResult = new MergeResult(null,
                                                                merger.getBaseCommit(0, 1),
                                                                new ObjectId[] { headCommit.getId(),
                                                                                srcParent.getId() },
-                                                               MergeStatus.CONFLICTING, MergeStrategy.RESOLVE,
+                                                               MergeStatus.CONFLICTING,
+                                                               MergeStrategy.RECURSIVE,
                                                                merger.getMergeResults(), failingPaths, null);
                                        if (!merger.failed() && !unmergedPaths.isEmpty()) {
                                                String message = new MergeMessageFormatter()
index f515609085d22295ee992340dcfdfba72adb03e5..b1fde1dc4c9f84fd151ffe49d6536ba9eaeae615 100644 (file)
@@ -168,7 +168,7 @@ public class StashApplyCommand extends GitCommand<ObjectId> {
                                        .getParent(1));
                        ObjectId stashHeadCommit = stashCommit.getParent(0);
 
-                       ResolveMerger merger = (ResolveMerger) MergeStrategy.RESOLVE
+                       ResolveMerger merger = (ResolveMerger) MergeStrategy.RECURSIVE
                                        .newMerger(repo);
                        merger.setCommitNames(new String[] { "stashed HEAD", "HEAD",
                                        "stash" });
@@ -181,7 +181,7 @@ public class StashApplyCommand extends GitCommand<ObjectId> {
                                dco.setFailOnConflict(true);
                                dco.checkout(); // Ignoring failed deletes....
                                if (applyIndex) {
-                                       ResolveMerger ixMerger = (ResolveMerger) MergeStrategy.RESOLVE
+                                       ResolveMerger ixMerger = (ResolveMerger) MergeStrategy.RECURSIVE
                                                        .newMerger(repo, true);
                                        ixMerger.setCommitNames(new String[] { "stashed HEAD",
                                                        "HEAD", "stashed index" });