Make recursive merge strategy the default merge strategy

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>
This commit is contained in:
Matthias Sohn 2013-03-25 03:39:58 +01:00
parent eaa52b12f5
commit aa7be667bc
6 changed files with 10 additions and 9 deletions

View File

@ -97,7 +97,7 @@ public void testMerge() throws Exception {
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]);
}

View 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;

View File

@ -150,7 +150,7 @@ public CherryPickResult call() throws GitAPIException, NoMessageException,
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());

View File

@ -95,7 +95,7 @@
*/
public class MergeCommand extends GitCommand<MergeResult> {
private MergeStrategy mergeStrategy = MergeStrategy.RESOLVE;
private MergeStrategy mergeStrategy = MergeStrategy.RECURSIVE;
private List<Ref> commits = new LinkedList<Ref>();

View File

@ -160,7 +160,7 @@ public RevCommit call() throws NoMessageException, UnmergedPathsException,
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 RevCommit call() throws NoMessageException, UnmergedPathsException,
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()

View File

@ -168,7 +168,7 @@ public ObjectId call() throws GitAPIException,
.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 ObjectId call() throws GitAPIException,
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" });