diff options
author | Tomasz Zarna <Tomasz.Zarna@pl.ibm.com> | 2011-06-20 18:17:56 +0200 |
---|---|---|
committer | Stefan Lay <stefan.lay@sap.com> | 2011-07-13 15:42:33 +0200 |
commit | e15037b3c7aa7f72313f19086bce12c54617c1bb (patch) | |
tree | 80c43208d6d39a3cf5823760d55de38170b0f526 /org.eclipse.jgit.test/tst | |
parent | 1d1f5727716bf8626869064812a05a3e39e1d0f2 (diff) | |
download | jgit-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.java | 41 |
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(); |