* stable-5.6: Introduce RefDatabase#hasFastTipsWithSha1 Update Orbit to R20191126223242 for 2019-12 Prepare 5.6.0-SNAPSHOT builds JGit v5.6.0.201912041214-rc1 Prepare 5.6.0-SNAPSHOT builds JGit v5.6.0.201911271000-m3 Change-Id: Id33b054131bbcd27a0ae7200f564775049698d2ctags/v5.7.0.202001151323-m1
@@ -18,7 +18,7 @@ Bundle-ActivationPolicy: lazy | |||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | |||
Import-Package: javax.servlet;version="[2.5.0,3.2.0)", | |||
javax.servlet.http;version="[2.5.0,3.2.0)", | |||
org.eclipse.jgit.annotations;version="[5.5.0,5.7.0)", | |||
org.eclipse.jgit.annotations;version="[5.6.0,5.7.0)", | |||
org.eclipse.jgit.errors;version="[5.6.0,5.7.0)", | |||
org.eclipse.jgit.internal.storage.dfs;version="[5.6.0,5.7.0)", | |||
org.eclipse.jgit.internal.storage.file;version="[5.6.0,5.7.0)", |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.10" sequenceNumber="1574722378"> | |||
<target name="jgit-4.10" sequenceNumber="1575495623"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.10" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/2018-12/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.11" sequenceNumber="1574722378"> | |||
<target name="jgit-4.11" sequenceNumber="1575495623"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.11" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/2019-03/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.12" sequenceNumber="1574722378"> | |||
<target name="jgit-4.12" sequenceNumber="1575495623"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.12" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/2019-06/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.13" sequenceNumber="1574722378"> | |||
<target name="jgit-4.13" sequenceNumber="1575495624"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.13" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/2019-09/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.14-staging" sequenceNumber="1574722378"> | |||
<target name="jgit-4.14-staging" sequenceNumber="1575495626"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.14-staging" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/staging/2019-12/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.6" sequenceNumber="1574722378"> | |||
<target name="jgit-4.6" sequenceNumber="1575495636"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.6" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/neon/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.7" sequenceNumber="1574722378"> | |||
<target name="jgit-4.7" sequenceNumber="1575495628"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.7" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/oxygen/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.8" sequenceNumber="1574722378"> | |||
<target name="jgit-4.8" sequenceNumber="1575495623"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.8" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/photon/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<?pde?> | |||
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> | |||
<target name="jgit-4.9" sequenceNumber="1574722364"> | |||
<target name="jgit-4.9" sequenceNumber="1575495623"> | |||
<locations> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/> | |||
@@ -82,7 +82,7 @@ | |||
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/> | |||
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/> | |||
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository"/> | |||
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/> | |||
</location> | |||
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit"> | |||
<unit id="org.eclipse.osgi" version="0.0.0"/> |
@@ -1,7 +1,7 @@ | |||
target "jgit-4.9" with source configurePhase | |||
include "projects/jetty-9.4.22.tpd" | |||
include "orbit/S20191118194249.tpd" | |||
include "orbit/R20191126223242-2019-12.tpd" | |||
location "http://download.eclipse.org/releases/2018-09/" { | |||
org.eclipse.osgi lazy |
@@ -1,7 +1,7 @@ | |||
target "S20191118194249" with source configurePhase | |||
target "R20191126223242-2019-12" with source configurePhase | |||
// see http://download.eclipse.org/tools/orbit/downloads/ | |||
location "https://download.eclipse.org/tools/orbit/downloads/drops/S20191118194249/repository" { | |||
location "https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository" { | |||
com.google.gson [2.8.2.v20180104-1110,2.8.2.v20180104-1110] | |||
com.google.gson.source [2.8.2.v20180104-1110,2.8.2.v20180104-1110] | |||
com.jcraft.jsch [0.1.55.v20190404-1902,0.1.55.v20190404-1902] |
@@ -155,6 +155,8 @@ public class FileReftableTest extends SampleDataRepositoryTestCase { | |||
assertFalse(b.isSymbolic()); | |||
assertTrue(b.isPeeled()); | |||
assertEquals(bCommit, b.getObjectId().name()); | |||
assertTrue(db.getRefDatabase().hasFastTipsWithSha1()); | |||
} | |||
@Test | |||
@@ -169,6 +171,8 @@ public class FileReftableTest extends SampleDataRepositoryTestCase { | |||
assertFalse(b.isSymbolic()); | |||
assertTrue(b.isPeeled()); | |||
assertEquals(bCommit, b.getObjectId().name()); | |||
assertFalse(db.getRefDatabase().hasFastTipsWithSha1()); | |||
} | |||
@Test |
@@ -176,6 +176,67 @@ public class ReftableTest { | |||
assertEquals(expBytes, table.length); | |||
} | |||
@Test | |||
public void hasObjMapRefs() throws IOException { | |||
ArrayList<Ref> refs = new ArrayList<>(); | |||
refs.add(ref(MASTER, 1)); | |||
byte[] table = write(refs); | |||
ReftableReader t = read(table); | |||
assertTrue(t.hasObjectMap()); | |||
} | |||
@Test | |||
public void hasObjMapRefsSmallTable() throws IOException { | |||
ArrayList<Ref> refs = new ArrayList<>(); | |||
ReftableConfig cfg = new ReftableConfig(); | |||
cfg.setIndexObjects(false); | |||
refs.add(ref(MASTER, 1)); | |||
byte[] table = write(refs); | |||
ReftableReader t = read(table); | |||
assertTrue(t.hasObjectMap()); | |||
} | |||
@Test | |||
public void hasObjLogs() throws IOException { | |||
PersonIdent who = new PersonIdent("Log", "Ger", 1500079709, -8 * 60); | |||
String msg = "test"; | |||
ReftableConfig cfg = new ReftableConfig(); | |||
cfg.setIndexObjects(false); | |||
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); | |||
ReftableWriter writer = new ReftableWriter(buffer) | |||
.setMinUpdateIndex(1) | |||
.setConfig(cfg) | |||
.setMaxUpdateIndex(1) | |||
.begin(); | |||
writer.writeLog("master", 1, who, ObjectId.zeroId(), id(1), msg); | |||
writer.finish(); | |||
byte[] table = buffer.toByteArray(); | |||
ReftableReader t = read(table); | |||
assertTrue(t.hasObjectMap()); | |||
} | |||
@Test | |||
public void hasObjMapRefsNoIndexObjects() throws IOException { | |||
ArrayList<Ref> refs = new ArrayList<>(); | |||
ReftableConfig cfg = new ReftableConfig(); | |||
cfg.setIndexObjects(false); | |||
cfg.setRefBlockSize(256); | |||
cfg.setAlignBlocks(true); | |||
// Fill up 5 blocks. | |||
int N = 256 * 5 / 25; | |||
for (int i= 0; i < N; i++) { | |||
refs.add(ref(String.format("%02d/xxxxxxxxxx", i), i)); | |||
} | |||
byte[] table = write(refs, cfg); | |||
ReftableReader t = read(table); | |||
assertFalse(t.hasObjectMap()); | |||
} | |||
@Test | |||
public void oneIdRef() throws IOException { | |||
Ref exp = ref(MASTER, 1); | |||
@@ -936,8 +997,13 @@ public class ReftableTest { | |||
} | |||
private byte[] write(Collection<Ref> refs) throws IOException { | |||
return write(refs, new ReftableConfig()); | |||
} | |||
private byte[] write(Collection<Ref> refs, ReftableConfig cfg) throws IOException { | |||
ByteArrayOutputStream buffer = new ByteArrayOutputStream(); | |||
stats = new ReftableWriter(buffer) | |||
.setConfig(cfg) | |||
.begin() | |||
.sortAndWriteRefs(refs) | |||
.finish() |
@@ -216,6 +216,12 @@ public class DfsReftableDatabase extends DfsRefDatabase { | |||
return reftableDatabase.getTipsWithSha1(id); | |||
} | |||
/** {@inheritDoc} */ | |||
@Override | |||
public boolean hasFastTipsWithSha1() throws IOException { | |||
return reftableDatabase.hasFastTipsWithSha1(); | |||
} | |||
/** {@inheritDoc} */ | |||
@Override | |||
public Ref peel(Ref ref) throws IOException { |
@@ -125,6 +125,12 @@ public class FileReftableDatabase extends RefDatabase { | |||
&& new File(repoDir, Constants.REFTABLE).isDirectory(); | |||
} | |||
/** {@inheritDoc} */ | |||
@Override | |||
public boolean hasFastTipsWithSha1() throws IOException { | |||
return reftableDatabase.hasFastTipsWithSha1(); | |||
} | |||
/** | |||
* Runs a full compaction for GC purposes. | |||
* @throws IOException on I/O errors |
@@ -98,6 +98,16 @@ public class MergedReftable extends Reftable { | |||
: 0; | |||
} | |||
/** {@inheritDoc} */ | |||
@Override | |||
public boolean hasObjectMap() throws IOException { | |||
boolean has = true; | |||
for (int i = 0; has && i < tables.length; i++) { | |||
has = has && tables[i].hasObjectMap(); | |||
}; | |||
return has; | |||
} | |||
/** {@inheritDoc} */ | |||
@Override | |||
public RefCursor allRefs() throws IOException { |
@@ -161,6 +161,12 @@ public abstract class Reftable { | |||
*/ | |||
public abstract RefCursor byObjectId(AnyObjectId id) throws IOException; | |||
/** | |||
* @return whether this reftable can do a fast SHA1 => ref lookup. | |||
* @throws IOException on I/O problems. | |||
*/ | |||
public abstract boolean hasObjectMap() throws IOException; | |||
/** | |||
* Seek reader to read log records. | |||
* |
@@ -298,6 +298,19 @@ public abstract class ReftableDatabase { | |||
return Collections.unmodifiableList(all); | |||
} | |||
/** | |||
* @return whether there is a fast SHA1 to ref map. | |||
* @throws IOException in case of I/O problems. | |||
*/ | |||
public boolean hasFastTipsWithSha1() throws IOException { | |||
lock.lock(); | |||
try { | |||
return reader().hasObjectMap(); | |||
} finally { | |||
lock.unlock(); | |||
} | |||
} | |||
/** | |||
* Returns all refs that resolve directly to the given {@link ObjectId}. | |||
* Includes peeled {@linkObjectId}s. |
@@ -128,6 +128,16 @@ public class ReftableReader extends Reftable implements AutoCloseable { | |||
return blockSize; | |||
} | |||
@Override | |||
public boolean hasObjectMap() throws IOException { | |||
if (objIndexPosition == -1) { | |||
readFileFooter(); | |||
} | |||
// We have the map, we have no refs, or the table is small. | |||
return (objPosition > 0 || refEnd == 24 || refIndexPosition == 0); | |||
} | |||
/** | |||
* Get the minimum update index for log entries that appear in this | |||
* reftable. |
@@ -496,6 +496,20 @@ public abstract class RefDatabase { | |||
|| id.equals(r.getPeeledObjectId())).collect(toSet()); | |||
} | |||
/** | |||
* If the ref database does not support fast inverse queries, it may | |||
* be advantageous to build a complete SHA1 to ref map in advance for | |||
* multiple uses. To let applications decide on this decision, | |||
* this function indicates whether the inverse map is available. | |||
* | |||
* @return whether this RefDatabase supports fast inverse ref queries. | |||
* @throws IOException on I/O problems. | |||
* @since 5.6 | |||
*/ | |||
public boolean hasFastTipsWithSha1() throws IOException { | |||
return false; | |||
} | |||
/** | |||
* Check if any refs exist in the ref database. | |||
* <p> |