aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/NameRevCommandTest.java14
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/NameRevCommand.java15
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);
}