aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <david.pursehouse@gmail.com>2018-04-27 10:42:53 +0900
committerDavid Pursehouse <david.pursehouse@gmail.com>2018-04-27 11:16:10 +0900
commit4dcf2f93db3f31262220140484237cfbb4189f4d (patch)
tree4cf0ac9a340ad12eda0cfade11cd53802a22977c
parent57f158632d2264d87cbd9e777014340eafa79fad (diff)
downloadjgit-4dcf2f93db3f31262220140484237cfbb4189f4d.tar.gz
jgit-4dcf2f93db3f31262220140484237cfbb4189f4d.zip
RefDatabase: Introduce getAllRefs method
Currently to get all refs, callers must use: getRefsByPrefix(ALL) Introduce getAllRefs, which does this, and migrate all existing callers of getRefsByPrefix(ALL). Change-Id: I7b1687c162c8ae836dc7db3ccc7ac847863f691d Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java4
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java4
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ShowRef.java4
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java7
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java5
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java16
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/BundleFetchConnection.java5
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java3
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java4
14 files changed, 33 insertions, 39 deletions
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java
index 8ba533f130..a52954307e 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java
@@ -45,8 +45,6 @@
package org.eclipse.jgit.pgm;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.util.ArrayList;
import java.util.List;
@@ -73,7 +71,7 @@ class RevParse extends TextBuiltin {
@Override
protected void run() throws Exception {
if (all) {
- List<Ref> allRefs = db.getRefDatabase().getRefsByPrefix(ALL);
+ List<Ref> allRefs = db.getRefDatabase().getAllRefs();
for (final Ref r : allRefs) {
ObjectId objectId = r.getObjectId();
// getRefs skips dangling symrefs, so objectId should never be
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
index f3714d8d75..423887cc17 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
@@ -53,7 +53,6 @@ import org.eclipse.jgit.errors.IncorrectObjectTypeException;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
-import org.eclipse.jgit.lib.RefDatabase;
import org.eclipse.jgit.pgm.internal.CLIText;
import org.eclipse.jgit.pgm.opt.PathTreeFilterHandler;
import org.eclipse.jgit.revwalk.FollowFilter;
@@ -170,8 +169,7 @@ abstract class RevWalkTextBuiltin extends TextBuiltin {
walk.setRevFilter(AndRevFilter.create(revLimiter));
if (all) {
- List<Ref> refs =
- db.getRefDatabase().getRefsByPrefix(RefDatabase.ALL);
+ List<Ref> refs = db.getRefDatabase().getAllRefs();
for (Ref a : refs) {
ObjectId oid = a.getPeeledObjectId();
if (oid == null)
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ShowRef.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ShowRef.java
index 2ed5de5c58..f6384a2cea 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ShowRef.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ShowRef.java
@@ -45,8 +45,6 @@
package org.eclipse.jgit.pgm;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.io.IOException;
import java.util.List;
@@ -67,7 +65,7 @@ class ShowRef extends TextBuiltin {
}
private Iterable<Ref> getSortedRefs() throws Exception {
- List<Ref> all = db.getRefDatabase().getRefsByPrefix(ALL);
+ List<Ref> all = db.getRefDatabase().getAllRefs();
// TODO(jrn) check if we can reintroduce fast-path by e.g. implementing
// SortedList
return RefComparator.sort(all);
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java
index d7503ab297..666fc34e26 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildCommitGraph.java
@@ -43,8 +43,6 @@
package org.eclipse.jgit.pgm.debug;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -117,7 +115,7 @@ class RebuildCommitGraph extends TextBuiltin {
/** {@inheritDoc} */
@Override
protected void run() throws Exception {
- if (!really && !db.getRefDatabase().getRefsByPrefix(ALL).isEmpty()) {
+ if (!really && !db.getRefDatabase().getAllRefs().isEmpty()) {
File directory = db.getDirectory();
String absolutePath = directory == null ? "null" //$NON-NLS-1$
: directory.getAbsolutePath();
@@ -247,8 +245,7 @@ class RebuildCommitGraph extends TextBuiltin {
private void deleteAllRefs() throws Exception {
final RevWalk rw = new RevWalk(db);
- List<Ref> refs = db.getRefDatabase().getRefsByPrefix(ALL);
- for (final Ref r : refs) {
+ for (Ref r : db.getRefDatabase().getAllRefs()) {
if (Constants.HEAD.equals(r.getName()))
continue;
final RefUpdate u = db.updateRef(r.getName());
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java
index 45fbc2cb3c..6665ce7c1d 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java
@@ -154,7 +154,7 @@ class RebuildRefTree extends TextBuiltin {
head));
}
- for (Ref r : refdb.getRefsByPrefix(RefDatabase.ALL)) {
+ for (Ref r : refdb.getAllRefs()) {
if (r.getName().equals(txnCommitted) || r.getName().equals(HEAD)
|| r.getName().startsWith(txnNamespace)) {
continue;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java
index 19f26ff33b..73433c18b8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java
@@ -42,8 +42,6 @@
*/
package org.eclipse.jgit.api;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
@@ -274,8 +272,7 @@ public class LogCommand extends GitCommand<Iterable<RevCommit>> {
* the references could not be accessed
*/
public LogCommand all() throws IOException {
- List<Ref> refs = getRepository().getRefDatabase().getRefsByPrefix(ALL);
- for (Ref ref : refs) {
+ for (Ref ref : getRepository().getRefDatabase().getAllRefs()) {
if(!ref.isPeeled())
ref = getRepository().peel(ref);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java
index 6b227852e0..30bcbf068b 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java
@@ -403,7 +403,7 @@ public class DfsGarbageCollector {
}
private Collection<Ref> getAllRefs() throws IOException {
- Collection<Ref> refs = refdb.getRefsByPrefix(RefDatabase.ALL);
+ Collection<Ref> refs = refdb.getAllRefs();
List<Ref> addl = refdb.getAdditionalRefs();
if (!addl.isEmpty()) {
List<Ref> all = new ArrayList<>(refs.size() + addl.size());
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index f6b39e920d..1ea686e7cd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -1068,7 +1068,7 @@ public class GC {
*/
private Collection<Ref> getAllRefs() throws IOException {
RefDatabase refdb = repo.getRefDatabase();
- Collection<Ref> refs = refdb.getRefsByPrefix(RefDatabase.ALL);
+ Collection<Ref> refs = refdb.getAllRefs();
List<Ref> addl = refdb.getAdditionalRefs();
if (!addl.isEmpty()) {
List<Ref> all = new ArrayList<>(refs.size() + addl.size());
@@ -1376,7 +1376,7 @@ public class GC {
}
RefDatabase refDb = repo.getRefDatabase();
- for (Ref r : refDb.getRefsByPrefix(RefDatabase.ALL)) {
+ for (Ref r : refDb.getAllRefs()) {
Storage storage = r.getStorage();
if (storage == Storage.LOOSE || storage == Storage.LOOSE_PACKED)
ret.numberOfLooseRefs++;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java
index 03888f8303..bceb208292 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java
@@ -392,6 +392,22 @@ public abstract class RefDatabase {
}
/**
+ * Returns all refs.
+ * <p>
+ * Callers interested in only a portion of the ref hierarchy can call
+ * {@link #getRefsByPrefix} instead.
+ *
+ * @return immutable list of all refs.
+ * @throws java.io.IOException
+ * the reference space cannot be accessed.
+ * @since 5.0
+ */
+ @NonNull
+ public List<Ref> getAllRefs() throws IOException {
+ return getRefsByPrefix(ALL);
+ }
+
+ /**
* Get the additional reference-like entities from the repository.
* <p>
* The result list includes non-ref items such as MERGE_HEAD and
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
index 206e5b105d..a88918e7a1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetchConnection.java
@@ -45,8 +45,6 @@
package org.eclipse.jgit.transport;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -439,7 +437,7 @@ public abstract class BasePackFetchConnection extends BasePackConnection
private void markReachable(final Set<ObjectId> have, final int maxTime)
throws IOException {
- for (Ref r : local.getRefDatabase().getRefsByPrefix(ALL)) {
+ for (Ref r : local.getRefDatabase().getAllRefs()) {
ObjectId id = r.getPeeledObjectId();
if (id == null)
id = r.getObjectId();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BundleFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BundleFetchConnection.java
index 48d8fa1e3e..24f44cb460 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BundleFetchConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BundleFetchConnection.java
@@ -47,8 +47,6 @@
package org.eclipse.jgit.transport;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -256,8 +254,7 @@ class BundleFetchConnection extends BaseFetchConnection {
List<Ref> localRefs;
try {
- localRefs = transport.local.getRefDatabase()
- .getRefsByPrefix(ALL);
+ localRefs = transport.local.getRefDatabase().getAllRefs();
} catch (IOException e) {
throw new TransportException(transport.uri, e.getMessage(), e);
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java
index fdd0a5e0fd..9ff5f7b91f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java
@@ -47,7 +47,6 @@
package org.eclipse.jgit.transport;
import static org.eclipse.jgit.lib.Constants.CHARSET;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
import java.io.BufferedReader;
import java.io.IOException;
@@ -689,7 +688,7 @@ public abstract class Transport implements AutoCloseable {
private static Collection<RefSpec> expandPushWildcardsFor(
final Repository db, final Collection<RefSpec> specs)
throws IOException {
- final List<Ref> localRefs = db.getRefDatabase().getRefsByPrefix(ALL);
+ final List<Ref> localRefs = db.getRefDatabase().getAllRefs();
final Collection<RefSpec> procRefs = new LinkedHashSet<>();
for (final RefSpec spec : specs) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
index 33270e0ba0..2a1b2492e6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
@@ -90,7 +90,6 @@ import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.lib.Ref;
-import org.eclipse.jgit.lib.RefDatabase;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.AsyncRevObjectQueue;
import org.eclipse.jgit.revwalk.BitmapWalker;
@@ -776,7 +775,7 @@ public class UploadPack {
private Map<String, Ref> getAdvertisedOrDefaultRefs() throws IOException {
if (refs == null)
- setAdvertisedRefs(db.getRefDatabase().getRefs(RefDatabase.ALL));
+ setAdvertisedRefs(db.getRefDatabase().getRefs(ALL));
return refs;
}
@@ -1583,7 +1582,7 @@ public class UploadPack {
else if (!wants.isEmpty()) {
Set<ObjectId> refIds =
refIdSet(up.getRepository().getRefDatabase()
- .getRefsByPrefix(ALL));
+ .getAllRefs());
for (ObjectId obj : wants) {
if (!refIds.contains(obj))
throw new WantNotValidException(obj);
@@ -1603,8 +1602,7 @@ public class UploadPack {
public void checkWants(UploadPack up, List<ObjectId> wants)
throws PackProtocolException, IOException {
checkNotAdvertisedWants(up, wants,
- refIdSet(up.getRepository().getRefDatabase()
- .getRefsByPrefix(ALL)));
+ refIdSet(up.getRepository().getRefDatabase().getAllRefs()));
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java
index 4061928498..c0ee28a2cd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java
@@ -44,8 +44,6 @@
package org.eclipse.jgit.transport;
-import static org.eclipse.jgit.lib.RefDatabase.ALL;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -691,7 +689,7 @@ class WalkFetchConnection extends BaseFetchConnection {
private void markLocalRefsComplete(final Set<ObjectId> have) throws TransportException {
List<Ref> refs;
try {
- refs = local.getRefDatabase().getRefsByPrefix(ALL);
+ refs = local.getRefDatabase().getAllRefs();
} catch (IOException e) {
throw new TransportException(e.getMessage(), e);
}