diff options
author | Robin Rosenberg <robin.rosenberg@dewire.com> | 2013-04-19 07:39:39 -0400 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org <gerrit@eclipse.org> | 2013-04-19 07:39:39 -0400 |
commit | 1c40d83f52730379e56b0a95485aad42a52b8e04 (patch) | |
tree | 3e0ad88f6900c0b284635f254c8fd3b1080ec2c2 | |
parent | f37e25e2c3f1322b95ddc6df5fb303d9f54a779a (diff) | |
parent | cc00feaa8d0368f4a5caefa002025e2168f71a12 (diff) | |
download | jgit-1c40d83f52730379e56b0a95485aad42a52b8e04.tar.gz jgit-1c40d83f52730379e56b0a95485aad42a52b8e04.zip |
Merge "A deleted work tree file is not a conflict when merge wants to delete it"
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java | 15 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java | 6 |
2 files changed, 20 insertions, 1 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java index 4dfac1447d..a81beb009a 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java @@ -543,4 +543,19 @@ public class StashApplyCommandTest extends RepositoryTestCase { assertNotNull(e.getMessage()); } } + + @Test + public void testApplyStashWithDeletedFile() throws Exception { + File file = writeTrashFile("file", "content"); + git.add().addFilepattern("file").call(); + git.commit().setMessage("x").call(); + file.delete(); + git.rm().addFilepattern("file").call(); + git.stashCreate().call(); + file.delete(); + + git.stashApply().setStashRef("stash@{0}").call(); + + assertFalse(file.exists()); + } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java index 2ea1160793..710996d2a8 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java @@ -488,7 +488,11 @@ public class ResolveMerger extends ThreeWayMerger { return true; } else if (modeT == 0 && modeB != 0) { // we want THEIRS ... but THEIRS contains the deletion of the - // file + // file. Also, do not complain if the file is already deleted + // locally. This complements the test in isWorktreeDirty() for + // the same case. + if (tw.getTreeCount() > T_FILE && tw.getRawMode(T_FILE) == 0) + return true; toBeDeleted.add(tw.getPathString()); return true; } |