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>
This commit is contained in:
Matthias Sohn 2014-10-13 16:41:58 +02:00
parent 74c337eadb
commit 13ffda0666
2 changed files with 18 additions and 0 deletions

View File

@ -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();

View File

@ -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);