Bläddra i källkod

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>
tags/v3.0.0.201305080800-m7
Matthias Sohn 11 år sedan
förälder
incheckning
aa7be667bc

+ 1
- 1
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/MergeTest.java Visa fil

git.add().addFilepattern("side").call(); git.add().addFilepattern("side").call();
git.commit().setMessage("side commit").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]); + "' strategy.", execute("git merge master")[0]);
} }



+ 1
- 1
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java Visa fil

@Option(name = "--no-commit", usage = "usage_noCommit") @Option(name = "--no-commit", usage = "usage_noCommit")
private boolean noCommit = false; private boolean noCommit = false;


private MergeStrategy mergeStrategy = MergeStrategy.RESOLVE;
private MergeStrategy mergeStrategy = MergeStrategy.RECURSIVE;


@Argument(required = true) @Argument(required = true)
private String ref; private String ref;

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java Visa fil

String cherryPickName = srcCommit.getId().abbreviate(7).name() String cherryPickName = srcCommit.getId().abbreviate(7).name()
+ " " + srcCommit.getShortMessage(); //$NON-NLS-1$ + " " + srcCommit.getShortMessage(); //$NON-NLS-1$


ResolveMerger merger = (ResolveMerger) MergeStrategy.RESOLVE
ResolveMerger merger = (ResolveMerger) MergeStrategy.RECURSIVE
.newMerger(repo); .newMerger(repo);
merger.setWorkingTreeIterator(new FileTreeIterator(repo)); merger.setWorkingTreeIterator(new FileTreeIterator(repo));
merger.setBase(srcParent.getTree()); merger.setBase(srcParent.getTree());

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java Visa fil

*/ */
public class MergeCommand extends GitCommand<MergeResult> { public class MergeCommand extends GitCommand<MergeResult> {


private MergeStrategy mergeStrategy = MergeStrategy.RESOLVE;
private MergeStrategy mergeStrategy = MergeStrategy.RECURSIVE;


private List<Ref> commits = new LinkedList<Ref>(); private List<Ref> commits = new LinkedList<Ref>();



+ 4
- 3
org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java Visa fil

String revertName = srcCommit.getId().abbreviate(7).name() String revertName = srcCommit.getId().abbreviate(7).name()
+ " " + srcCommit.getShortMessage(); //$NON-NLS-1$ + " " + srcCommit.getShortMessage(); //$NON-NLS-1$


ResolveMerger merger = (ResolveMerger) MergeStrategy.RESOLVE
ResolveMerger merger = (ResolveMerger) MergeStrategy.RECURSIVE
.newMerger(repo); .newMerger(repo);
merger.setWorkingTreeIterator(new FileTreeIterator(repo)); merger.setWorkingTreeIterator(new FileTreeIterator(repo));
merger.setBase(srcCommit.getTree()); merger.setBase(srcCommit.getTree());
merger.getBaseCommit(0, 1), merger.getBaseCommit(0, 1),
new ObjectId[] { headCommit.getId(), new ObjectId[] { headCommit.getId(),
srcParent.getId() }, srcParent.getId() },
MergeStatus.FAILED, MergeStrategy.RESOLVE,
MergeStatus.FAILED, MergeStrategy.RECURSIVE,
merger.getMergeResults(), failingPaths, null); merger.getMergeResults(), failingPaths, null);
else else
failingResult = new MergeResult(null, failingResult = new MergeResult(null,
merger.getBaseCommit(0, 1), merger.getBaseCommit(0, 1),
new ObjectId[] { headCommit.getId(), new ObjectId[] { headCommit.getId(),
srcParent.getId() }, srcParent.getId() },
MergeStatus.CONFLICTING, MergeStrategy.RESOLVE,
MergeStatus.CONFLICTING,
MergeStrategy.RECURSIVE,
merger.getMergeResults(), failingPaths, null); merger.getMergeResults(), failingPaths, null);
if (!merger.failed() && !unmergedPaths.isEmpty()) { if (!merger.failed() && !unmergedPaths.isEmpty()) {
String message = new MergeMessageFormatter() String message = new MergeMessageFormatter()

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java Visa fil

.getParent(1)); .getParent(1));
ObjectId stashHeadCommit = stashCommit.getParent(0); ObjectId stashHeadCommit = stashCommit.getParent(0);


ResolveMerger merger = (ResolveMerger) MergeStrategy.RESOLVE
ResolveMerger merger = (ResolveMerger) MergeStrategy.RECURSIVE
.newMerger(repo); .newMerger(repo);
merger.setCommitNames(new String[] { "stashed HEAD", "HEAD", merger.setCommitNames(new String[] { "stashed HEAD", "HEAD",
"stash" }); "stash" });
dco.setFailOnConflict(true); dco.setFailOnConflict(true);
dco.checkout(); // Ignoring failed deletes.... dco.checkout(); // Ignoring failed deletes....
if (applyIndex) { if (applyIndex) {
ResolveMerger ixMerger = (ResolveMerger) MergeStrategy.RESOLVE
ResolveMerger ixMerger = (ResolveMerger) MergeStrategy.RECURSIVE
.newMerger(repo, true); .newMerger(repo, true);
ixMerger.setCommitNames(new String[] { "stashed HEAD", ixMerger.setCommitNames(new String[] { "stashed HEAD",
"HEAD", "stashed index" }); "HEAD", "stashed index" });

Laddar…
Avbryt
Spara