Browse Source

Merge "Unwind loop that iterates over fetch connection refs."

tags/v1.1.0.201109011030-rc2
Stefan Lay 12 years ago
parent
commit
28a4992524
1 changed files with 14 additions and 17 deletions
  1. 14
    17
      org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java

+ 14
- 17
org.eclipse.jgit/src/org/eclipse/jgit/api/LsRemoteCommand.java View File

@@ -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();
}

Loading…
Cancel
Save