diff options
author | Kevin Sawicki <kevin@github.com> | 2011-08-22 13:10:31 -0700 |
---|---|---|
committer | Kevin Sawicki <kevin@github.com> | 2011-08-22 13:10:31 -0700 |
commit | b127fa19ebae69b318d88ac0389d779d22c7eaa0 (patch) | |
tree | 0b3a9cdd447b61179b82a3980caa9d891a1f7b22 | |
parent | 930875a81a690f732fb5ac26304d6fb212aa2582 (diff) | |
download | jgit-b127fa19ebae69b318d88ac0389d779d22c7eaa0.tar.gz jgit-b127fa19ebae69b318d88ac0389d779d22c7eaa0.zip |
Unwind loop that iterates over fetch connection refs.
Create separate loops based on whether the ref specs
collection is empty or not.
Change-Id: I2861b45fe083675e12ff47f591e104f8cf6dd216
Signed-off-by: Kevin Sawicki <kevin@github.com>
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java | 31 |
1 files changed, 14 insertions, 17 deletions
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 9d036e24f0..093d6cc1b2 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<Collection<Ref>> { private String remote = Constants.DEFAULT_REMOTE_NAME; private boolean heads; + private boolean tags; + private String uploadPack; /** @@ -118,7 +120,7 @@ public class LsRemoteCommand extends GitCommand<Collection<Ref>> { /** * The full path of git-upload-pack on the remote host - * + * * @param uploadPack */ public void setUploadPack(String uploadPack) { @@ -134,32 +136,27 @@ public class LsRemoteCommand extends GitCommand<Collection<Ref>> { try { Collection<RefSpec> refSpecs = new ArrayList<RefSpec>(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<Ref> refs; Map<String, Ref> refmap = new HashMap<String, Ref>(); 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(); } |