private void excludeRemoteRefs(ObjectWalk walk) throws IOException {
RefDatabase refDatabase = getRepository().getRefDatabase();
- Map<String, Ref> remoteRefs = refDatabase.getRefs(remote());
- for (Ref r : remoteRefs.values()) {
+ List<Ref> remoteRefs = refDatabase.getRefsByPrefix(remote());
+ for (Ref r : remoteRefs) {
ObjectId oid = r.getPeeledObjectId();
if (oid == null) {
oid = r.getObjectId();
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
@Override
protected void run() throws Exception {
if (all) {
- Map<String, Ref> allRefs = db.getRefDatabase().getRefs(ALL);
- for (final Ref r : allRefs.values()) {
+ List<Ref> allRefs = db.getRefDatabase().getRefsByPrefix(ALL);
+ for (final Ref r : allRefs) {
ObjectId objectId = r.getObjectId();
// getRefs skips dangling symrefs, so objectId should never be
// null.
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
-import java.util.Map;
import org.eclipse.jgit.diff.DiffConfig;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
walk.setRevFilter(AndRevFilter.create(revLimiter));
if (all) {
- Map<String, Ref> refs =
- db.getRefDatabase().getRefs(RefDatabase.ALL);
- for (Ref a : refs.values()) {
+ List<Ref> refs =
+ db.getRefDatabase().getRefsByPrefix(RefDatabase.ALL);
+ for (Ref a : refs) {
ObjectId oid = a.getPeeledObjectId();
if (oid == null)
oid = a.getObjectId();
import static org.eclipse.jgit.lib.RefDatabase.ALL;
import java.io.IOException;
-import java.util.Map;
-import java.util.SortedMap;
+import java.util.List;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.RefComparator;
-import org.eclipse.jgit.util.RefMap;
@Command(usage = "usage_ShowRef")
class ShowRef extends TextBuiltin {
}
private Iterable<Ref> getSortedRefs() throws Exception {
- Map<String, Ref> all = db.getRefDatabase().getRefs(ALL);
- if (all instanceof RefMap
- || (all instanceof SortedMap && ((SortedMap) all).comparator() == null))
- return all.values();
- return RefComparator.sort(all.values());
+ List<Ref> all = db.getRefDatabase().getRefsByPrefix(ALL);
+ // TODO(jrn) check if we can reintroduce fast-path by e.g. implementing
+ // SortedList
+ return RefComparator.sort(all);
}
private void show(final AnyObjectId id, final String name)
/** {@inheritDoc} */
@Override
protected void run() throws Exception {
- if (!really && !db.getRefDatabase().getRefs(ALL).isEmpty()) {
+ if (!really && !db.getRefDatabase().getRefsByPrefix(ALL).isEmpty()) {
File directory = db.getDirectory();
String absolutePath = directory == null ? "null" //$NON-NLS-1$
: directory.getAbsolutePath();
private void deleteAllRefs() throws Exception {
final RevWalk rw = new RevWalk(db);
- Map<String, Ref> refs = db.getRefDatabase().getRefs(ALL);
- for (final Ref r : refs.values()) {
+ List<Ref> refs = db.getRefDatabase().getRefsByPrefix(ALL);
+ for (final Ref r : refs) {
if (Constants.HEAD.equals(r.getName()))
continue;
final RefUpdate u = db.updateRef(r.getName());
head));
}
- for (Ref r : refdb.getRefs(RefDatabase.ALL).values()) {
+ for (Ref r : refdb.getRefsByPrefix(RefDatabase.ALL)) {
if (r.getName().equals(txnCommitted) || r.getName().equals(HEAD)
|| r.getName().startsWith(txnNamespace)) {
continue;
@Override
public void onRefsChanged(RefsChangedEvent event) {
try {
- refDb.getRefs("ref");
+ refDb.getRefsByPrefix("ref");
changeCount.incrementAndGet();
} catch (StackOverflowError soe) {
error.set(soe);
}
}
});
- refDb.getRefs("ref");
- refDb.getRefs("ref");
+ refDb.getRefsByPrefix("ref");
+ refDb.getRefsByPrefix("ref");
assertNull(error.get());
assertNull(exception.get());
assertEquals(1, changeCount.get());
if (target == null)
setTarget(Constants.HEAD);
- Collection<Ref> tagList = repo.getRefDatabase().getRefs(R_TAGS).values();
+ Collection<Ref> tagList = repo.getRefDatabase()
+ .getRefsByPrefix(R_TAGS);
Map<ObjectId, List<Ref>> tags = tagList.stream()
.collect(Collectors.groupingBy(this::getObjectIdFromRef));
}
private Collection<Ref> getRefs(String prefix) throws IOException {
- return repo.getRefDatabase().getRefs(prefix).values();
+ return repo.getRefDatabase().getRefsByPrefix(prefix);
}
}
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import java.util.Map;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.JGitInternalException;
@Override
public List<Ref> call() throws GitAPIException {
checkCallable();
- Map<String, Ref> refList;
List<Ref> tags = new ArrayList<>();
try (RevWalk revWalk = new RevWalk(repo)) {
- refList = repo.getRefDatabase().getRefs(Constants.R_TAGS);
- for (Ref ref : refList.values()) {
+ List<Ref> refList = repo.getRefDatabase()
+ .getRefsByPrefix(Constants.R_TAGS);
+ for (Ref ref : refList) {
tags.add(ref);
}
} catch (IOException e) {
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.JGitInternalException;
* the references could not be accessed
*/
public LogCommand all() throws IOException {
- Map<String, Ref> refs = getRepository().getRefDatabase().getRefs(ALL);
- for (Ref ref : refs.values()) {
+ List<Ref> refs = getRepository().getRefDatabase().getRefsByPrefix(ALL);
+ for (Ref ref : refs) {
if(!ref.isPeeled())
ref = getRepository().peel(ref);
if (refs == null)
refs = new ArrayList<>();
try {
- for (Ref ref : repo.getRefDatabase().getRefs(Constants.R_TAGS).values()) {
+ for (Ref ref : repo.getRefDatabase()
+ .getRefsByPrefix(Constants.R_TAGS)) {
ObjectId id = ref.getObjectId();
if (id != null && (walk.parseAny(id) instanceof RevTag))
addRef(ref);
private void addPrefix(String prefix, Map<ObjectId, String> nonCommits,
FIFORevQueue pending) throws IOException {
- for (Ref ref : repo.getRefDatabase().getRefs(prefix).values())
+ for (Ref ref : repo.getRefDatabase().getRefsByPrefix(prefix))
addRef(ref, nonCommits, pending);
}
}
private Collection<Ref> getAllRefs() throws IOException {
- Collection<Ref> refs = refdb.getRefs(RefDatabase.ALL).values();
+ Collection<Ref> refs = refdb.getRefsByPrefix(RefDatabase.ALL);
List<Ref> addl = refdb.getAdditionalRefs();
if (!addl.isEmpty()) {
List<Ref> all = new ArrayList<>(refs.size() + addl.size());
* @throws java.io.IOException
*/
public void packRefs() throws IOException {
- Collection<Ref> refs = repo.getRefDatabase().getRefs(Constants.R_REFS).values();
+ Collection<Ref> refs = repo.getRefDatabase()
+ .getRefsByPrefix(Constants.R_REFS);
List<String> refsToBePacked = new ArrayList<>(refs.size());
pm.beginTask(JGitText.get().packRefs, refs.size());
try {
*/
private Collection<Ref> getAllRefs() throws IOException {
RefDatabase refdb = repo.getRefDatabase();
- Collection<Ref> refs = refdb.getRefs(RefDatabase.ALL).values();
+ Collection<Ref> refs = refdb.getRefsByPrefix(RefDatabase.ALL);
List<Ref> addl = refdb.getAdditionalRefs();
if (!addl.isEmpty()) {
List<Ref> all = new ArrayList<>(refs.size() + addl.size());
}
RefDatabase refDb = repo.getRefDatabase();
- for (Ref r : refDb.getRefs(RefDatabase.ALL).values()) {
+ for (Ref r : refDb.getRefsByPrefix(RefDatabase.ALL)) {
Storage storage = r.getStorage();
if (storage == Storage.LOOSE || storage == Storage.LOOSE_PACKED)
ret.numberOfLooseRefs++;
public List<Ref> getAdditionalRefs() throws IOException {
Collection<Ref> txnRefs;
if (txnNamespace != null) {
- txnRefs = bootstrap.getRefs(txnNamespace).values();
+ txnRefs = bootstrap.getRefsByPrefix(txnNamespace);
} else {
Ref r = bootstrap.exactRef(txnCommitted);
if (r != null && r.getObjectId() != null) {
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
import org.eclipse.jgit.errors.PackProtocolException;
private void markReachable(final Set<ObjectId> have, final int maxTime)
throws IOException {
- Map<String, Ref> refs = local.getRefDatabase().getRefs(ALL);
- for (final Ref r : refs.values()) {
+ for (Ref r : local.getRefDatabase().getRefsByPrefix(ALL)) {
ObjectId id = r.getPeeledObjectId();
if (id == null)
id = r.getObjectId();
throw new MissingBundlePrerequisiteException(transport.uri,
missing);
- Map<String, Ref> localRefs;
+ List<Ref> localRefs;
try {
- localRefs = transport.local.getRefDatabase().getRefs(ALL);
+ localRefs = transport.local.getRefDatabase()
+ .getRefsByPrefix(ALL);
} catch (IOException e) {
throw new TransportException(transport.uri, e.getMessage(), e);
}
- for (final Ref r : localRefs.values()) {
+ for (final Ref r : localRefs) {
try {
rw.markStart(rw.parseCommit(r.getObjectId()));
} catch (IOException readError) {
private static Collection<RefSpec> expandPushWildcardsFor(
final Repository db, final Collection<RefSpec> specs)
throws IOException {
- final Map<String, Ref> localRefs = db.getRefDatabase().getRefs(ALL);
+ final List<Ref> localRefs = db.getRefDatabase().getRefsByPrefix(ALL);
final Collection<RefSpec> procRefs = new LinkedHashSet<>();
for (final RefSpec spec : specs) {
if (spec.isWildcard()) {
- for (final Ref localRef : localRefs.values()) {
+ for (final Ref localRef : localRefs) {
if (spec.matchSource(localRef))
procRefs.add(spec.expandFromSource(localRef));
}
new ReachableCommitTipRequestValidator().checkWants(up, wants);
else if (!wants.isEmpty()) {
Set<ObjectId> refIds =
- refIdSet(up.getRepository().getRefDatabase().getRefs(ALL).values());
+ refIdSet(up.getRepository().getRefDatabase()
+ .getRefsByPrefix(ALL));
for (ObjectId obj : wants) {
if (!refIds.contains(obj))
throw new WantNotValidException(obj);
public void checkWants(UploadPack up, List<ObjectId> wants)
throws PackProtocolException, IOException {
checkNotAdvertisedWants(up, wants,
- refIdSet(up.getRepository().getRefDatabase().getRefs(ALL).values()));
+ refIdSet(up.getRepository().getRefDatabase()
+ .getRefsByPrefix(ALL)));
}
}
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.eclipse.jgit.errors.CompoundException;
}
private void markLocalRefsComplete(final Set<ObjectId> have) throws TransportException {
- Map<String, Ref> refs;
+ List<Ref> refs;
try {
- refs = local.getRefDatabase().getRefs(ALL);
+ refs = local.getRefDatabase().getRefsByPrefix(ALL);
} catch (IOException e) {
throw new TransportException(e.getMessage(), e);
}
- for (final Ref r : refs.values()) {
+ for (final Ref r : refs) {
try {
markLocalObjComplete(revWalk.parseAny(r.getObjectId()));
} catch (IOException readError) {