aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LogCommandTest.java25
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java2
2 files changed, 27 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LogCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LogCommandTest.java
index 1f53645..c6402e7 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LogCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/LogCommandTest.java
@@ -51,6 +51,7 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.jgit.junit.RepositoryTestCase;
+import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Test;
@@ -89,6 +90,30 @@ public class LogCommandTest extends RepositoryTestCase {
assertFalse(log.hasNext());
}
+ @Test
+ public void logAllCommitsWithTag() throws Exception {
+ List<RevCommit> commits = new ArrayList<RevCommit>();
+ Git git = Git.wrap(db);
+
+ writeTrashFile("Test.txt", "Hello world");
+ git.add().addFilepattern("Test.txt").call();
+ commits.add(git.commit().setMessage("initial commit").call());
+
+ TagCommand tagCmd = git.tag();
+ tagCmd.setName("tagname");
+ tagCmd.setObjectId(commits.get(0));
+ tagCmd.setTagger(new PersonIdent(db));
+ Ref tag = tagCmd.call();
+
+ Iterator<RevCommit> log = git.log().all().call().iterator();
+ assertTrue(log.hasNext());
+ RevCommit commit = log.next();
+ tag = db.peel(tag);
+
+ assertEquals(commit.getName(), tag.getPeeledObjectId().getName());
+ assertTrue(commits.contains(commit));
+ }
+
private List<RevCommit> createCommits(Git git) throws Exception {
List<RevCommit> commits = new ArrayList<RevCommit>();
writeTrashFile("Test.txt", "Hello world");
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java
index 6d4b347..70b3658 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java
@@ -239,6 +239,8 @@ public class LogCommand extends GitCommand<Iterable<RevCommit>> {
*/
public LogCommand all() throws IOException {
for (Ref ref : getRepository().getAllRefs().values()) {
+ if(!ref.isPeeled())
+ ref = getRepository().peel(ref);
ObjectId objectId = ref.getPeeledObjectId();
if (objectId == null)
objectId = ref.getObjectId();