diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java index 72762437d..54de8cfb4 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java @@ -43,7 +43,6 @@ package org.eclipse.jgit.merge; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; @@ -79,7 +78,7 @@ public class ResolveMergerTest extends RepositoryTestCase { public static MergeStrategy recursive = MergeStrategy.RECURSIVE; @Theory - public void failingPathsShouldNotResultInOKReturnValue( + public void failingDeleteOfDirectoryWithUntrackedContent( MergeStrategy strategy) throws Exception { File folder1 = new File(db.getWorkTree(), "folder1"); FileUtils.mkdir(folder1); @@ -107,6 +106,7 @@ public class ResolveMergerTest extends RepositoryTestCase { RevCommit head = git.commit().setMessage("Adding another file").call(); // Untracked file to cause failing path for delete() of folder1 + // but that's ok. file = new File(folder1, "file3.txt"); write(file, "folder1--file3.txt"); @@ -114,9 +114,8 @@ public class ResolveMergerTest extends RepositoryTestCase { merger.setCommitNames(new String[] { "BASE", "HEAD", "other" }); merger.setWorkingTreeIterator(new FileTreeIterator(db)); boolean ok = merger.merge(head.getId(), other.getId()); - - assertFalse(merger.getFailingPaths().isEmpty()); - assertFalse(ok); + assertTrue(ok); + assertTrue(file.exists()); } /** diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java index 710996d2a..eca2f91be 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java @@ -244,8 +244,9 @@ public class ResolveMerger extends ThreeWayMerger { String fileName = toBeDeleted.get(i); File f = new File(db.getWorkTree(), fileName); if (!f.delete()) - failingPaths.put(fileName, - MergeFailureReason.COULD_NOT_DELETE); + if (!f.isDirectory()) + failingPaths.put(fileName, + MergeFailureReason.COULD_NOT_DELETE); modifiedFiles.add(fileName); } } finally {