Class MergedReftable
java.lang.Object
org.eclipse.jgit.internal.storage.reftable.Reftable
org.eclipse.jgit.internal.storage.reftable.MergedReftable
Merges multiple reference tables together.
A MergedReftable
merge-joins multiple
ReftableReader on the fly.
Tables higher/later in the stack shadow lower/earlier tables, hiding
references that been updated/replaced.
By default deleted references are skipped and not returned to the caller.
Reftable.setIncludeDeletes(boolean) can be used to modify this behavior if
the caller needs to preserve deletions during partial compaction.
A MergedReftable is not thread-safe.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classprivate static classprivate classprivate classprivate static class -
Field Summary
FieldsFields inherited from class org.eclipse.jgit.internal.storage.reftable.Reftable
includeDeletes -
Constructor Summary
ConstructorsConstructorDescriptionMergedReftable(List<ReftableReader> tableStack) Initialize a merged table reader. -
Method Summary
Modifier and TypeMethodDescriptionallLogs()Seek reader to read log records.allRefs()Seek to the first reference, to iterate in order.byObjectId(AnyObjectId name) Match references pointing to a specific object.booleanlongGet the maximum update index for ref entries that appear in this reftable.longGet the minimum update index for ref entries that appear in this reftable.(package private) intSeek to an update index in a reference's log.Seek to a reference.seekRefsWithPrefix(String prefix) Seek references with prefix.Methods inherited from class org.eclipse.jgit.internal.storage.reftable.Reftable
exactRef, from, hasId, hasRef, hasRefsWithPrefix, resolve, seekLog, setIncludeDeletes
-
Field Details
-
tables
-
-
Constructor Details
-
MergedReftable
Initialize a merged table reader.- Parameters:
tableStack- stack of tables to read from. The base of the stack is at index 0, the most recent should be at the top of the stack attableStack.size() - 1. The top of the stack (higher index) shadows the base of the stack (lower index).
-
-
Method Details
-
maxUpdateIndex
Get the maximum update index for ref entries that appear in this reftable.- Specified by:
maxUpdateIndexin classReftable- Returns:
- the maximum update index for ref entries that appear in this reftable.
- Throws:
IOException- file cannot be read.
-
minUpdateIndex
Get the minimum update index for ref entries that appear in this reftable.- Specified by:
minUpdateIndexin classReftable- Returns:
- the minimum update index for ref entries that appear in this reftable.
- Throws:
IOException- file cannot be read.
-
hasObjectMap
- Specified by:
hasObjectMapin classReftable- Returns:
- whether this reftable can do a fast SHA1 => ref lookup.
- Throws:
IOException- on I/O problems.
-
allRefs
Seek to the first reference, to iterate in order.- Specified by:
allRefsin classReftable- Returns:
- cursor to iterate.
- Throws:
IOException- if references cannot be read.
-
seekRef
Seek to a reference.This method will seek to the reference
refName. If present, the returned cursor will iterate exactly one entry. If not found, an empty cursor is returned.- Specified by:
seekRefin classReftable- Parameters:
name- reference name.- Returns:
- cursor to iterate; empty cursor if no references match.
- Throws:
IOException- if references cannot be read.
-
seekRefsWithPrefix
Seek references with prefix.The method will seek all the references starting with
prefixas a prefix. If no references start with this prefix, an empty cursor is returned.- Specified by:
seekRefsWithPrefixin classReftable- Parameters:
prefix- prefix to find.- Returns:
- cursor to iterate; empty cursor if no references match.
- Throws:
IOException- if references cannot be read.
-
byObjectId
Match references pointing to a specific object.- Specified by:
byObjectIdin classReftable- Parameters:
name- object to find.- Returns:
- cursor to iterate; empty cursor if no references match.
- Throws:
IOException- if references cannot be read.
-
allLogs
Seek reader to read log records.- Specified by:
allLogsin classReftable- Returns:
- cursor to iterate; empty cursor if no logs are present.
- Throws:
IOException- if logs cannot be read.
-
seekLog
Seek to an update index in a reference's log.- Specified by:
seekLogin classReftable- Parameters:
refName- exact name of the reference whose log to read.updateIdx- most recent index to return first in the log cursor. Log records at or beforeupdateIndexwill be returned.- Returns:
- cursor to iterate; empty cursor if no logs match.
- Throws:
IOException- if logs cannot be read.
-
queueSize
int queueSize()
-