Browse Source

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>
stable-3.3
Robin Rosenberg 11 years ago committed by Matthias Sohn
parent
commit
ff83f54d29
  1. 9
      org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java
  2. 1
      org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java

9
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());
}
/**

1
org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java

@ -244,6 +244,7 @@ public class ResolveMerger extends ThreeWayMerger {
String fileName = toBeDeleted.get(i);
File f = new File(db.getWorkTree(), fileName);
if (!f.delete())
if (!f.isDirectory())
failingPaths.put(fileName,
MergeFailureReason.COULD_NOT_DELETE);
modifiedFiles.add(fileName);

Loading…
Cancel
Save