Fix Check for FF_ONLY merges again
Added more FF-mode tests Change-Id: I33eed5737d9411cc1cf214da62ce719916a1b736
This commit is contained in:
parent
83032e9f66
commit
eb60932930
|
@ -204,28 +204,6 @@ public void testMultipleHeads() throws Exception {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMergeCannotDoRequiredFastForward() throws Exception {
|
||||
Git git = new Git(db);
|
||||
|
||||
RevCommit first = git.commit().setMessage("first").call();
|
||||
createBranch(first, "refs/heads/side");
|
||||
|
||||
writeTrashFile("a", "a");
|
||||
git.add().addFilepattern("a").call();
|
||||
git.commit().setMessage("second").call();
|
||||
|
||||
checkoutBranch("refs/heads/side");
|
||||
writeTrashFile("b", "b");
|
||||
git.add().addFilepattern("b").call();
|
||||
git.commit().setMessage("third").call();
|
||||
|
||||
MergeResult result = git.merge().include(db.getRef(Constants.MASTER))
|
||||
.setFastForward(FastForwardMode.NO_FF)
|
||||
.call();
|
||||
assertEquals(MergeStatus.ABORTED, result.getMergeStatus());
|
||||
}
|
||||
|
||||
@Theory
|
||||
public void testMergeSuccessAllStrategies(MergeStrategy mergeStrategy)
|
||||
throws Exception {
|
||||
|
@ -1367,6 +1345,41 @@ public void testFastForwardOnly() throws Exception {
|
|||
|
||||
assertEquals(MergeStatus.FAST_FORWARD, result.getMergeStatus());
|
||||
}
|
||||
@Test
|
||||
public void testNoFastForward() throws Exception {
|
||||
Git git = new Git(db);
|
||||
RevCommit initialCommit = git.commit().setMessage("initial commit")
|
||||
.call();
|
||||
createBranch(initialCommit, "refs/heads/branch1");
|
||||
git.commit().setMessage("second commit").call();
|
||||
checkoutBranch("refs/heads/branch1");
|
||||
|
||||
MergeCommand merge = git.merge();
|
||||
merge.setFastForward(FastForwardMode.NO_FF);
|
||||
merge.include(db.getRef(Constants.MASTER));
|
||||
MergeResult result = merge.call();
|
||||
|
||||
assertEquals(MergeStatus.MERGED, result.getMergeStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFastForwardOnlyNotPossible() throws Exception {
|
||||
Git git = new Git(db);
|
||||
RevCommit initialCommit = git.commit().setMessage("initial commit")
|
||||
.call();
|
||||
createBranch(initialCommit, "refs/heads/branch1");
|
||||
git.commit().setMessage("second commit").call();
|
||||
checkoutBranch("refs/heads/branch1");
|
||||
writeTrashFile("file1", "branch1");
|
||||
git.add().addFilepattern("file").call();
|
||||
git.commit().setMessage("second commit on branch1").call();
|
||||
MergeCommand merge = git.merge();
|
||||
merge.setFastForward(FastForwardMode.FF_ONLY);
|
||||
merge.include(db.getRef(Constants.MASTER));
|
||||
MergeResult result = merge.call();
|
||||
|
||||
assertEquals(MergeStatus.ABORTED, result.getMergeStatus());
|
||||
}
|
||||
private static void setExecutable(Git git, String path, boolean executable) {
|
||||
FS.DETECTED.setExecute(
|
||||
new File(git.getRepository().getWorkTree(), path), executable);
|
||||
|
|
|
@ -300,7 +300,7 @@ public MergeResult call() throws GitAPIException, NoHeadException,
|
|||
headCommit, srcCommit }, mergeStatus, mergeStrategy,
|
||||
null, msg);
|
||||
} else {
|
||||
if (fastForwardMode == FastForwardMode.NO_FF) {
|
||||
if (fastForwardMode == FastForwardMode.FF_ONLY) {
|
||||
return new MergeResult(headCommit, srcCommit,
|
||||
new ObjectId[] { headCommit, srcCommit },
|
||||
MergeStatus.ABORTED, mergeStrategy, null, null);
|
||||
|
|
Loading…
Reference in New Issue