MergedReftable: Include the last reftable in determining minUpdateIndex
MergedReftable ignores the last reftable in the stack while calculating the minUpdateIndex. Update the loop indices to include all reftables in the minUpdateIndex calculation, while skipping position 0 as it is read outside the loop. Change-Id: I12d3e714581e93d178be79c02408a67ab2bd838e Signed-off-by: Minh Thai <mthai@google.com>
This commit is contained in:
parent
641069971d
commit
9719ca411e
|
@ -329,22 +329,22 @@ public void nonOverlappedUpdateIndices() throws IOException {
|
|||
public void overlappedUpdateIndices() throws IOException {
|
||||
ByteArrayOutputStream buf = new ByteArrayOutputStream();
|
||||
ReftableWriter writer = new ReftableWriter(buf)
|
||||
.setMinUpdateIndex(1)
|
||||
.setMaxUpdateIndex(3)
|
||||
.begin();
|
||||
writer.writeRef(ref("refs/heads/a", 1), 1);
|
||||
writer.writeRef(ref("refs/heads/b", 2), 3);
|
||||
writer.finish();
|
||||
byte[] base = buf.toByteArray();
|
||||
|
||||
buf = new ByteArrayOutputStream();
|
||||
writer = new ReftableWriter(buf)
|
||||
.setMinUpdateIndex(2)
|
||||
.setMaxUpdateIndex(4)
|
||||
.begin();
|
||||
writer.writeRef(ref("refs/heads/a", 10), 2);
|
||||
writer.writeRef(ref("refs/heads/b", 20), 4);
|
||||
writer.finish();
|
||||
byte[] base = buf.toByteArray();
|
||||
|
||||
buf = new ByteArrayOutputStream();
|
||||
writer = new ReftableWriter(buf)
|
||||
.setMinUpdateIndex(1)
|
||||
.setMaxUpdateIndex(3)
|
||||
.begin();
|
||||
writer.writeRef(ref("refs/heads/a", 1), 1);
|
||||
writer.writeRef(ref("refs/heads/b", 2), 3);
|
||||
writer.finish();
|
||||
byte[] delta = buf.toByteArray();
|
||||
|
||||
MergedReftable mr = merge(base, delta);
|
||||
|
@ -368,22 +368,22 @@ public void overlappedUpdateIndices() throws IOException {
|
|||
public void enclosedUpdateIndices() throws IOException {
|
||||
ByteArrayOutputStream buf = new ByteArrayOutputStream();
|
||||
ReftableWriter writer = new ReftableWriter(buf)
|
||||
.setMinUpdateIndex(1)
|
||||
.setMaxUpdateIndex(4)
|
||||
.begin();
|
||||
writer.writeRef(ref("refs/heads/a", 1), 1);
|
||||
writer.writeRef(ref("refs/heads/b", 20), 4);
|
||||
writer.finish();
|
||||
byte[] base = buf.toByteArray();
|
||||
|
||||
buf = new ByteArrayOutputStream();
|
||||
writer = new ReftableWriter(buf)
|
||||
.setMinUpdateIndex(2)
|
||||
.setMaxUpdateIndex(3)
|
||||
.begin();
|
||||
writer.writeRef(ref("refs/heads/a", 10), 2);
|
||||
writer.writeRef(ref("refs/heads/b", 2), 3);
|
||||
writer.finish();
|
||||
byte[] base = buf.toByteArray();
|
||||
|
||||
buf = new ByteArrayOutputStream();
|
||||
writer = new ReftableWriter(buf)
|
||||
.setMinUpdateIndex(1)
|
||||
.setMaxUpdateIndex(4)
|
||||
.begin();
|
||||
writer.writeRef(ref("refs/heads/a", 1), 1);
|
||||
writer.writeRef(ref("refs/heads/b", 20), 4);
|
||||
writer.finish();
|
||||
byte[] delta = buf.toByteArray();
|
||||
|
||||
MergedReftable mr = merge(base, delta);
|
||||
|
|
|
@ -82,7 +82,7 @@ public long minUpdateIndex() throws IOException {
|
|||
return 0;
|
||||
}
|
||||
long minUpdateIndex = tables[0].minUpdateIndex();
|
||||
for (int i = 0; i < tables.length - 1; i++) {
|
||||
for (int i = 1; i < tables.length; i++) {
|
||||
if (tables[i].minUpdateIndex() < minUpdateIndex) {
|
||||
minUpdateIndex = tables[i].minUpdateIndex();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue