summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst
diff options
context:
space:
mode:
authorTomasz Zarna <Tomasz.Zarna@pl.ibm.com>2011-06-20 18:17:56 +0200
committerStefan Lay <stefan.lay@sap.com>2011-07-13 15:42:33 +0200
commite15037b3c7aa7f72313f19086bce12c54617c1bb (patch)
tree80c43208d6d39a3cf5823760d55de38170b0f526 /org.eclipse.jgit.test/tst
parent1d1f5727716bf8626869064812a05a3e39e1d0f2 (diff)
downloadjgit-e15037b3c7aa7f72313f19086bce12c54617c1bb.tar.gz
jgit-e15037b3c7aa7f72313f19086bce12c54617c1bb.zip
Merge doesn't remove empty folders
Bug: 349848 Change-Id: I2aa5a1a7259889428e4845046b900538262f3c84
Diffstat (limited to 'org.eclipse.jgit.test/tst')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java
index 39526e229a..7811706fc1 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java
@@ -60,6 +60,7 @@ import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.merge.MergeStrategy;
import org.eclipse.jgit.merge.ResolveMerger.MergeFailureReason;
import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.util.FileUtils;
import org.junit.Test;
public class MergeCommandTest extends RepositoryTestCase {
@@ -916,6 +917,46 @@ public class MergeCommandTest extends RepositoryTestCase {
indexState, fileA);
}
+ @Test
+ public void testMergeRemovingFolders() throws Exception {
+ File folder1 = new File(db.getWorkTree(), "folder1");
+ File folder2 = new File(db.getWorkTree(), "folder2");
+ FileUtils.mkdir(folder1);
+ FileUtils.mkdir(folder2);
+ File file = new File(folder1, "file1.txt");
+ write(file, "folder1--file1.txt");
+ file = new File(folder1, "file2.txt");
+ write(file, "folder1--file2.txt");
+ file = new File(folder2, "file1.txt");
+ write(file, "folder--file1.txt");
+ file = new File(folder2, "file2.txt");
+ write(file, "folder2--file2.txt");
+
+ Git git = new Git(db);
+ git.add().addFilepattern(folder1.getName())
+ .addFilepattern(folder2.getName()).call();
+ RevCommit commit1 = git.commit().setMessage("adding folders").call();
+
+ recursiveDelete(folder1);
+ recursiveDelete(folder2);
+ git.rm().addFilepattern("folder1/file1.txt")
+ .addFilepattern("folder1/file2.txt")
+ .addFilepattern("folder2/file1.txt")
+ .addFilepattern("folder2/file2.txt").call();
+ RevCommit commit2 = git.commit()
+ .setMessage("removing folders on 'branch'").call();
+
+ git.checkout().setName(commit1.name()).call();
+
+ MergeResult result = git.merge().include(commit2.getId())
+ .setStrategy(MergeStrategy.RESOLVE).call();
+ assertEquals(MergeResult.MergeStatus.FAST_FORWARD,
+ result.getMergeStatus());
+ assertEquals(commit2, result.getNewHead());
+ assertFalse(folder1.exists());
+ assertFalse(folder2.exists());
+ }
+
private RevCommit addAllAndCommit(final Git git) throws Exception {
git.add().addFilepattern(".").call();
return git.commit().setMessage("message").call();