diff options
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/api/NameRevCommandTest.java | 14 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java | 15 |
2 files changed, 24 insertions, 5 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/NameRevCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/NameRevCommandTest.java index b92a636f58..491595498e 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/NameRevCommandTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/NameRevCommandTest.java @@ -44,6 +44,7 @@ package org.eclipse.jgit.api; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.util.Map; @@ -109,6 +110,19 @@ public class NameRevCommandTest extends RepositoryTestCase { } @Test + public void annotatedTagsNoResult() throws Exception { + RevCommit c = tr.commit().create(); + tr.update("refs/heads/master", c); + tr.update("refs/tags/tag1", c); + tr.update("refs/tags/tag2", c); + Map<ObjectId, String> result = git.nameRev() + .add(c) + .addAnnotatedTags() + .call(); + assertTrue(result.toString(), result.isEmpty()); + } + + @Test public void simpleAncestor() throws Exception { // 0--1--2 RevCommit c0 = tr.commit().create(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java index 95a1f352b1..cce42fc51a 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java @@ -112,8 +112,8 @@ public class NameRevCommand extends GitCommand<Map<ObjectId, String>> { private final RevWalk walk; private final List<String> prefixes; - private final List<Ref> refs; private final List<ObjectId> revs; + private List<Ref> refs; private int mergeCost; /** @@ -125,7 +125,6 @@ public class NameRevCommand extends GitCommand<Map<ObjectId, String>> { super(repo); mergeCost = MERGE_COST; prefixes = new ArrayList<String>(2); - refs = new ArrayList<Ref>(); revs = new ArrayList<ObjectId>(2); walk = new RevWalk(repo) { @Override @@ -140,8 +139,10 @@ public class NameRevCommand extends GitCommand<Map<ObjectId, String>> { try { Map<ObjectId, String> nonCommits = new HashMap<ObjectId, String>(); FIFORevQueue pending = new FIFORevQueue(); - for (Ref ref : refs) - addRef(ref, nonCommits, pending); + if (refs != null) { + for (Ref ref : refs) + addRef(ref, nonCommits, pending); + } addPrefixes(nonCommits, pending); int cutoff = minCommitTime() - COMMIT_TIME_SLOP; @@ -273,6 +274,8 @@ public class NameRevCommand extends GitCommand<Map<ObjectId, String>> { */ public NameRevCommand addAnnotatedTags() { checkCallable(); + if (refs == null) + refs = new ArrayList<Ref>(); try { for (Ref ref : repo.getRefDatabase().getRefs(Constants.R_TAGS).values()) { ObjectId id = ref.getObjectId(); @@ -298,6 +301,8 @@ public class NameRevCommand extends GitCommand<Map<ObjectId, String>> { */ public NameRevCommand addRef(Ref ref) { checkCallable(); + if (refs == null) + refs = new ArrayList<Ref>(); refs.add(ref); return this; } @@ -312,7 +317,7 @@ public class NameRevCommand extends GitCommand<Map<ObjectId, String>> { if (!prefixes.isEmpty()) { for (String prefix : prefixes) addPrefix(prefix, nonCommits, pending); - } else if (refs.isEmpty()) + } else if (refs == null) addPrefix(Constants.R_REFS, nonCommits, pending); } |