]> source.dussan.org Git - jgit.git/commit
Add RefDatabase#getRefsByPrefix method 73/120873/4
authorJonathan Tan <jonathantanmy@google.com>
Fri, 6 Apr 2018 22:50:01 +0000 (15:50 -0700)
committerJonathan Nieder <jrn@google.com>
Fri, 20 Apr 2018 18:10:48 +0000 (11:10 -0700)
commit4faec31c0a9ff92efdac10d1bd5db1a929ce74a2
treec78b793028240be22185ec7f4fed33053b9159ea
parent42e69409d796421bb1353279cfae463b19a43fe9
Add RefDatabase#getRefsByPrefix method

The existing RefDatabase#getRefs abstract method (to be implemented by
ref database backends) has the following issues:

 - It returns a map with a key (the name of the ref with the prefix
   removed) which is potentially superfluous (it can be derived by the
   caller if need be) and confusing (in that the prefix is removed).
 - The prefix is required to end with a '/', but some backends (e.g.
   reftable) have fast search by prefix regardless of what the last
   character of the prefix is.

Add a new method #getRefsByPrefix that does not have these issues. This
is non-abstract with a default implementation that uses #getRefs (for
backwards compatibility), but ref database backends can reimplement it.

This also prepares for supporting "ref-prefix" in the "ls-refs" command
in the fetch-pack/upload-pack protocol v2, which does not require that
the prefix end with a '/'.

Change-Id: I4c92f852e8c1558095dd460b5fd7b602c1d82df1
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Jonathan Nieder <jrn@google.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RefTest.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java