diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java index 82249766a..c48b41240 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java @@ -424,6 +424,21 @@ public void testPathsResetToNonexistingRef() throws Exception { git.reset().setRef("doesnotexist").addPath("a.txt").call(); } + @Test + public void testResetDefaultMode() throws Exception { + git = new Git(db); + writeTrashFile("a.txt", "content"); + git.add().addFilepattern("a.txt").call(); + writeTrashFile("a.txt", "modified"); + // should use default mode MIXED + git.reset().call(); + + DirCache cache = db.readDirCache(); + DirCacheEntry aEntry = cache.getEntry("a.txt"); + assertNull(aEntry); + assertEquals("modified", read("a.txt")); + } + @Test public void testHardResetOnTag() throws Exception { setupRepository(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java index 7c2192dd9..17b124230 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java @@ -195,6 +195,9 @@ public Ref call() throws GitAPIException, CheckoutConflictException { result = repo.getRef(Constants.HEAD); } + if (mode == null) + mode = ResetType.MIXED; + switch (mode) { case HARD: checkoutIndex(commitTree);