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>
This commit is contained in:
Robin Rosenberg 2014-02-04 01:00:41 +01:00 committed by Matthias Sohn
parent e03f18941f
commit ff83f54d29
2 changed files with 7 additions and 7 deletions

View File

@ -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 void failingPathsShouldNotResultInOKReturnValue(
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 void failingPathsShouldNotResultInOKReturnValue(
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());
}
/**

View File

@ -244,8 +244,9 @@ private void checkout() throws NoWorkTreeException, IOException {
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 {