Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Rosenberg2014-02-04 00:00:41 +0000
committerMatthias Sohn2014-02-10 10:25:02 +0000
commitff83f54d29a2e3c2fda5e25b60bd7d20347c53ca (patch)
treee314fc228a60d3aaa8941e10128cb8393ef8a647
parente03f18941f5d996d23bc004ad63049bcfc0e53d3 (diff)
downloadjgit-ff83f54d29a2e3c2fda5e25b60bd7d20347c53ca.tar.gz
jgit-ff83f54d29a2e3c2fda5e25b60bd7d20347c53ca.tar.xz
jgit-ff83f54d29a2e3c2fda5e25b60bd7d20347c53ca.zip
Failing to delete a directory with untracked content is actually ok
We had a test, but it was wrong. Bug: 424630 Change-Id: I926e0954c8623a323a50fe8be3ebe5e0ac6944c8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java5
2 files changed, 7 insertions, 7 deletions
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 72762437d6..54de8cfb47 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 710996d2a8..eca2f91bef 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 {

Back to the top