Browse Source

Fix ResetCommand to default to mixed reset

ResetCommand threw an NPE if neither mode nor path was defined. Instead
it should default to a mixed reset like native git does.

Change-Id: I455902394f9e7b0c7afae42381f34838f7f2a138
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-3.6
Matthias Sohn 10 years ago
parent
commit
13ffda0666
  1. 15
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java
  2. 3
      org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java

15
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java

@ -424,6 +424,21 @@ public class ResetCommandTest extends RepositoryTestCase {
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();

3
org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java

@ -195,6 +195,9 @@ public class ResetCommand extends GitCommand<Ref> {
result = repo.getRef(Constants.HEAD);
}
if (mode == null)
mode = ResetType.MIXED;
switch (mode) {
case HARD:
checkoutIndex(commitTree);

Loading…
Cancel
Save