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>
tags/v3.3.0.201402191814-rc1
Robin Rosenberg 10 years ago
parent
commit
ff83f54d29

+ 4
- 5
org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/ResolveMergerTest.java 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 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());
}

/**

+ 3
- 2
org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java View File

@@ -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 {

Loading…
Cancel
Save