diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java index 9d036e24f..093d6cc1b 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java @@ -73,7 +73,9 @@ public class LsRemoteCommand extends GitCommand> { private String remote = Constants.DEFAULT_REMOTE_NAME; private boolean heads; + private boolean tags; + private String uploadPack; /** @@ -118,7 +120,7 @@ public void setTags(boolean tags) { /** * The full path of git-upload-pack on the remote host - * + * * @param uploadPack */ public void setUploadPack(String uploadPack) { @@ -134,32 +136,27 @@ public Collection call() throws Exception { try { Collection refSpecs = new ArrayList(1); - if (tags) { + if (tags) refSpecs.add(new RefSpec( "refs/tags/*:refs/remotes/origin/tags/*")); - } - if (heads) { + if (heads) refSpecs.add(new RefSpec( "refs/heads/*:refs/remotes/origin/*")); - } Collection refs; Map refmap = new HashMap(); FetchConnection fc = transport.openFetch(); try { refs = fc.getRefs(); - for (Ref r : refs) { - boolean found = refSpecs.isEmpty(); - for (RefSpec rs : refSpecs) { - if (rs.matchSource(r)) { - found = true; - break; - } - } - if (found) { + if (refSpecs.isEmpty()) + for (Ref r : refs) refmap.put(r.getName(), r); - } - - } + else + for (Ref r : refs) + for (RefSpec rs : refSpecs) + if (rs.matchSource(r)) { + refmap.put(r.getName(), r); + break; + } } finally { fc.close(); }