Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Sawicki2011-08-22 20:10:31 +0000
committerKevin Sawicki2011-08-22 20:10:31 +0000
commitb127fa19ebae69b318d88ac0389d779d22c7eaa0 (patch)
tree0b3a9cdd447b61179b82a3980caa9d891a1f7b22
parent930875a81a690f732fb5ac26304d6fb212aa2582 (diff)
downloadjgit-b127fa19ebae69b318d88ac0389d779d22c7eaa0.tar.gz
jgit-b127fa19ebae69b318d88ac0389d779d22c7eaa0.tar.xz
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.java31
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();
}

Back to the top