mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-10 06:03:38 +00:00
Merge pull request #7897 from ThomasWaldmann/check-fixes-shadow-index-1.2
check --repair fixes shadow_index (1.2-maint)
This commit is contained in:
commit
55ee4e2d28
2 changed files with 11 additions and 0 deletions
|
@ -917,6 +917,7 @@ class Repository:
|
|||
s, _ = self.index[key]
|
||||
self.compact[s] += size
|
||||
self.segments[s] -= 1
|
||||
self.shadow_index.setdefault(key, []).append(s)
|
||||
except KeyError:
|
||||
pass
|
||||
self.index[key] = segment, offset
|
||||
|
@ -935,6 +936,7 @@ class Repository:
|
|||
self.segments[s] -= 1
|
||||
size = self.io.read(s, offset, key, read_data=False)
|
||||
self.compact[s] += size
|
||||
self.shadow_index.setdefault(key, []).append(s)
|
||||
elif tag == TAG_COMMIT:
|
||||
continue
|
||||
else:
|
||||
|
|
|
@ -826,6 +826,15 @@ class RepositoryHintsTestCase(RepositoryTestCaseBase):
|
|||
self.assert_equal(compact_expected, self.repository.compact)
|
||||
del self.repository.segments[2] # ignore the segment created by put(H(42), ...)
|
||||
self.assert_equal(segments_expected, self.repository.segments)
|
||||
self.reopen()
|
||||
self.assert_equal(self.repository.check(repair=True), True)
|
||||
self.reopen()
|
||||
self.repository.put(H(42), b'foobar') # this will call prepare_txn() and load the hints data
|
||||
self.assert_equal(shadow_index_expected, self.repository.shadow_index)
|
||||
# sizes do not match, with vs. without header?
|
||||
# self.assert_equal(compact_expected, self.repository.compact)
|
||||
del self.repository.segments[2] # ignore the segment created by put(H(42), ...)
|
||||
self.assert_equal(segments_expected, self.repository.segments)
|
||||
|
||||
def test_hints_behaviour(self):
|
||||
self.repository.put(H(0), b'data')
|
||||
|
|
Loading…
Add table
Reference in a new issue