diff --git a/storage/key_index.go b/storage/key_index.go index 961ff5b3a..2463a9810 100644 --- a/storage/key_index.go +++ b/storage/key_index.go @@ -177,6 +177,7 @@ func (ki *keyIndex) since(rev int64) []revision { // replace the revision with a new one that has higher sub value, // because the original one should not be seen by external revs[len(revs)-1] = r + continue } revs = append(revs, r) last = r.main diff --git a/storage/key_index_test.go b/storage/key_index_test.go index c611327a1..01d903315 100644 --- a/storage/key_index_test.go +++ b/storage/key_index_test.go @@ -97,6 +97,21 @@ func TestKeyIndexSince(t *testing.T) { {17, nil}, {16, allRevs[6:]}, {15, allRevs[6:]}, + {14, allRevs[5:]}, + {13, allRevs[5:]}, + {12, allRevs[4:]}, + {11, allRevs[4:]}, + {10, allRevs[3:]}, + {9, allRevs[3:]}, + {8, allRevs[2:]}, + {7, allRevs[2:]}, + {6, allRevs[1:]}, + {5, allRevs[1:]}, + {4, allRevs}, + {3, allRevs}, + {2, allRevs}, + {1, allRevs}, + {0, allRevs}, } for i, tt := range tests {