From a7aaf88b2e573ecd998afaa5852c1835990755a6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 17 Aug 2011 08:56:16 -0700 Subject: Use HEAD as default ref for RefLogCommand. This mirrors the default command-line behavior. Change-Id: I4f819410fa6df3064c560beb3184b61fd7bb1f15 Signed-off-by: Kevin Sawicki --- .../org/eclipse/jgit/api/ReflogCommandTest.java | 43 +++++++++++++++++++--- .../src/org/eclipse/jgit/api/ReflogCommand.java | 4 +- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ReflogCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ReflogCommandTest.java index 03cae44dad..78123d86a7 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ReflogCommandTest.java +++ b/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 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 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()); + } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ReflogCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ReflogCommand.java index 71f680745e..bd16e3f912 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ReflogCommand.java +++ b/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> { - private String ref = Constants.R_HEADS + Constants.MASTER; + private String ref = Constants.HEAD; /** * @param repo @@ -73,7 +73,7 @@ public class ReflogCommand extends GitCommand> { /** * 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} -- cgit v1.2.3