Browse Source

reftable: add maxUpdateIndex to Reftable

This makes maxUpdateIndex() available in MergedReftable, so we can
know generically at which index to create the next reftable in a
stack.

Change-Id: Ia2314bc57c8b5dd7e69d5e61096fdce1d35abd11
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
next
Han-Wen Nienhuys 5 years ago
parent
commit
33dc08c162
  1. 9
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/MergedReftable.java
  2. 13
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/Reftable.java
  3. 10
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableReader.java

9
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/MergedReftable.java

@ -91,6 +91,15 @@ public class MergedReftable extends Reftable {
} }
} }
/**
* {@inheritDoc}
*/
@Override
public long maxUpdateIndex() throws IOException {
return tables.length > 0 ? tables[tables.length - 1].maxUpdateIndex()
: 0;
}
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
public RefCursor allRefs() throws IOException { public RefCursor allRefs() throws IOException {

13
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/Reftable.java

@ -98,6 +98,19 @@ public abstract class Reftable implements AutoCloseable {
includeDeletes = deletes; includeDeletes = deletes;
} }
/**
* Get the maximum update index for log entries that appear in this
* reftable.
*
* @return the maximum update index for log entries that appear in this
* reftable. This should be 1 higher than the prior reftable's
* {@code maxUpdateIndex} if this table is used in a stack.
* @throws java.io.IOException
* file cannot be read.
*/
public abstract long maxUpdateIndex() throws IOException;
/** /**
* Seek to the first reference, to iterate in order. * Seek to the first reference, to iterate in order.
* *

10
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableReader.java

@ -146,15 +146,9 @@ public class ReftableReader extends Reftable {
} }
/** /**
* Get the maximum update index for log entries that appear in this * {@inheritDoc}
* reftable.
*
* @return the maximum update index for log entries that appear in this
* reftable. This should be 1 higher than the prior reftable's
* {@code maxUpdateIndex} if this table is used in a stack.
* @throws java.io.IOException
* file cannot be read.
*/ */
@Override
public long maxUpdateIndex() throws IOException { public long maxUpdateIndex() throws IOException {
if (blockSize == -1) { if (blockSize == -1) {
readFileHeader(); readFileHeader();

Loading…
Cancel
Save