Browse Source

Use HEAD as default ref for RefLogCommand.

This mirrors the default command-line behavior.

Change-Id: I4f819410fa6df3064c560beb3184b61fd7bb1f15
Signed-off-by: Kevin Sawicki <kevin@github.com>
stable-1.1
Kevin Sawicki 13 years ago
parent
commit
a7aaf88b2e
  1. 43
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ReflogCommandTest.java
  2. 4
      org.eclipse.jgit/src/org/eclipse/jgit/api/ReflogCommand.java

43
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ReflogCommandTest.java

@ -43,10 +43,12 @@
package org.eclipse.jgit.api;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNotNull;
import java.util.Collection;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.storage.file.ReflogEntry;
@ -71,20 +73,49 @@ public class ReflogCommandTest extends RepositoryTestCase {
writeTrashFile(FILE, "Hello world");
git.add().addFilepattern(FILE).call();
commit1 = git.commit().setMessage("Initial commit").call();
git.checkout().setCreateBranch(true).setName("b1").call();
git.rm().addFilepattern(FILE).call();
commit2 = git.commit().setMessage("Removed file").call();
git.notesAdd().setObjectId(commit1)
.setMessage("data").call();
git.notesAdd().setObjectId(commit1).setMessage("data").call();
}
/**
* Test getting the HEAD reflog
*
* @throws Exception
*/
@Test
public void testReflog() throws Exception {
public void testHeadReflog() throws Exception {
Collection<ReflogEntry> reflog = git.reflog().call();
assertTrue(reflog.size() == 2);
assertNotNull(reflog);
assertEquals(3, reflog.size());
ReflogEntry[] reflogs = reflog.toArray(new ReflogEntry[reflog.size()]);
assertEquals(reflogs[1].getComment(), "commit: Initial commit");
assertEquals(reflogs[2].getComment(), "commit: Initial commit");
assertEquals(reflogs[2].getNewId(), commit1.getId());
assertEquals(reflogs[2].getOldId(), ObjectId.zeroId());
assertEquals(reflogs[1].getNewId(), commit1.getId());
assertEquals(reflogs[1].getOldId(), commit1.getId());
assertEquals(reflogs[0].getComment(), "commit: Removed file");
assertEquals(reflogs[0].getNewId(), commit2.getId());
assertEquals(reflogs[0].getOldId(), commit1.getId());
}
/**
* Test getting the reflog for an explicit branch
*
* @throws Exception
*/
@Test
public void testBranchReflog() throws Exception {
Collection<ReflogEntry> reflog = git.reflog()
.setRef(Constants.R_HEADS + "b1").call();
assertNotNull(reflog);
assertEquals(2, reflog.size());
ReflogEntry[] reflogs = reflog.toArray(new ReflogEntry[reflog.size()]);
assertEquals(reflogs[0].getComment(), "commit: Removed file");
assertEquals(reflogs[0].getNewId(), commit2.getId());
assertEquals(reflogs[0].getOldId(), commit1.getId());
assertEquals(reflogs[1].getNewId(), commit1.getId());
assertEquals(reflogs[1].getOldId(), ObjectId.zeroId());
}
}

4
org.eclipse.jgit/src/org/eclipse/jgit/api/ReflogCommand.java

@ -62,7 +62,7 @@ import org.eclipse.jgit.storage.file.ReflogReader;
*/
public class ReflogCommand extends GitCommand<Collection<ReflogEntry>> {
private String ref = Constants.R_HEADS + Constants.MASTER;
private String ref = Constants.HEAD;
/**
* @param repo
@ -73,7 +73,7 @@ public class ReflogCommand extends GitCommand<Collection<ReflogEntry>> {
/**
* The ref used for the reflog operation. If no ref is set, the default
* value of refs/heads/master will be used.
* value of HEAD will be used.
*
* @param ref
* @return {@code this}

Loading…
Cancel
Save