Selaa lähdekoodia

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>
tags/v3.6.0.201411121045-m1
Matthias Sohn 9 vuotta sitten
vanhempi
commit
13ffda0666

+ 15
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ResetCommandTest.java Näytä tiedosto

@@ -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
- 0
org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java Näytä tiedosto

@@ -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…
Peruuta
Tallenna