Michael Eischer
b892b1a150
repository: move lock file handling from restic package
2026-06-13 21:31:23 +02:00
Michael Eischer
3ee465d363
repository: rename Lock function to LockRepo
...
Rename `Lock()` to `LockRepo()` to make room for the `Lock` struct.
2026-06-13 21:24:37 +02:00
Michael Eischer
8e11f5747d
restic: introduce Counter interface to decouple from ui/progress ( #21861 )
...
decouple restic and ui/progress packages
2026-06-13 21:08:18 +02:00
Michael Eischer
c8a0bc2c5e
repository: move crypto package to internal/repository/crypto
2026-06-13 20:05:06 +02:00
Michael Eischer
b94ef4831d
repository: add PackBlob.UncompressedCiphertextLength()
2026-06-13 20:05:05 +02:00
Michael Eischer
1acc19dac5
repository: unexport SearchKey
2026-06-13 19:49:03 +02:00
Michael Eischer
79e92b3bc6
repository: change Unlocker to interface
2026-06-13 19:48:47 +02:00
Michael Eischer
766d9f9f1e
repository: unexport openKey
2026-06-13 19:48:31 +02:00
Michael Eischer
131abbb4f0
repository: unexport WarmupJob
2026-06-13 19:48:15 +02:00
Michael Eischer
d62e42e620
repository: unexport NewChecker
2026-06-13 19:48:02 +02:00
Michael Eischer
c062a78dcd
repository: move Blob, Blobs and PackedBlob to pack package
...
This removes them from the public interface. The latter now only
provides the PackBlob interface, without being bound to the type used
internally by the pack package.
2026-06-13 18:58:37 +02:00
Michael Eischer
35af104749
restic: change LookupBlob to return []PackBlob
2026-06-13 17:54:58 +02:00
Michael Eischer
ccb5ae1592
restic: change ListBlobs to return PackBlob
...
PackBlob is a limited interface that only exposes a part of the
information provided by PackedBlob. Most of the changes are switches
from direct value lookups to the interface methods, with a few larger
changes to let the tests still work.
2026-06-13 17:54:38 +02:00
Michael Eischer
c060c317d3
repository: unexport listPacksFromIndex
...
`ListPacksFromIndex` only has repository-internal callers left (besides
test code).
2026-06-13 17:54:03 +02:00
Michael Eischer
a9e0b46358
restic: list pack header via ListPackHandles
...
Replace ListPack with ListPackHandles so callers only receive blob
handles from pack headers, not layout fields.
2026-06-13 17:50:21 +02:00
Michael Eischer
8169814b38
restic: switch LoadBlobsFromPack to BlobHandles
...
LoadBlobsFromPack now resolves the handles to Blobs. Repository internal
code can still use the Blob-based method.
The loader used in the filerestorer test now has to implement sorting
the blobs by offset itself as it no longer has access to the repository-internal
dataypes.
2026-06-13 17:50:21 +02:00
Michael Eischer
f186e1e458
repository: require *Repository for CopyBlobs
...
Prepare `CopyBlobs` to allow access to unexported methods of the
Repository struct. This requires changing the test to inject the number
of backend connections via a wrapped backend instead of a wrapped
repository.
2026-06-13 17:50:21 +02:00
Winfried Plappert
0938f52f38
tests - more test cases for internal/repository/check.go ( #21830 )
...
Co-authored-by: Michael Eischer <michael.eischer@fau.de >
2026-06-13 15:35:48 +00:00
Michael Eischer
0bbfb072af
ui/progress: unexport NoopPrinter and add New* function
2026-06-13 16:53:57 +02:00
darkdragon-001
e5dba15367
Json prune ( #5239 )
...
Co-authored-by: Alexander Weiss <alex@weissfam.de >
Co-authored-by: Michael Eischer <michael.eischer@fau.de >
2026-06-13 10:38:57 +00:00
Michael Eischer
abfc9bbdff
Merge pull request #21868 from MichaelEischer/fix-zero-sized-blobs
...
repository: fix zero-sized blobs in v2 repos
2026-06-11 20:43:38 +02:00
Michael Eischer
c745f810b3
backend/cache: use backend types not restic types ( #21860 )
2026-06-10 22:45:39 +02:00
Michael Eischer
119bb9d9a8
repository: require *Repository for ExaminePack
...
The function wouldn't work with a different Repository implementation
anyways.
2026-06-10 22:20:28 +02:00
Michael Eischer
8c6ee42d17
debug: move DumpPacks into repository package
...
Processing pack file internals belongs into the repository package.
2026-06-10 22:20:28 +02:00
Michael Eischer
ccddc1914d
repository: rename PackError to ErrPackMetadata
2026-06-10 22:20:28 +02:00
Michael Eischer
4bc5eca7ea
repository: merge check.go into checker.go
2026-06-10 22:20:28 +02:00
Michael Eischer
17ff3aa5f9
Merge pull request #21841 from MichaelEischer/isolate-repository
...
prevent imports of repository internals
2026-06-10 22:19:24 +02:00
Michael Eischer
0fc7444e32
repository: fix zero-sized blobs in v2 repos
2026-06-10 22:03:40 +02:00
Michael Eischer
522efd1175
downgrade compress library due to regression with zero-sized blobs
...
while this should only affect test cases better be safe than sorry.
2026-06-08 22:51:47 +02:00
Michael Eischer
7d25ca9d67
repository: omit unused headerSize from ListPack()
2026-05-31 22:53:00 +02:00
Michael Eischer
cc546b71e3
debug: move code requring internal access to repository package
2026-05-31 22:48:38 +02:00
Michael Eischer
3cb49556f5
repair index: replace full index handling integration test with unit test
2026-05-31 22:39:16 +02:00
Michael Eischer
620f5986f8
list index: use helper in repository package
2026-05-31 22:14:01 +02:00
Michael Eischer
91a6e74fd5
repository: test split index handling in index rewrite
2026-05-31 16:22:58 +02:00
Michael Eischer
78b3411076
check: consider split pack index entries as repository damage
2026-05-31 15:58:33 +02:00
Michael Eischer
5b39ad861e
repository: repair index: correctly handle split index entries
...
In restic <0.10.0, it was possible that the blobs of a pack file were
split across multiple indexes. `MasterIndex.Rewrite` however assumed
that each an index always contains the full description of a pack file.
Therefore, further index entries for a pack were filtered out as
duplicates. Now, the code also checks the blobs contained in the index
entry while filtering out duplicates.
2026-05-31 15:58:29 +02:00
Michael Eischer
f86307d223
Merge pull request #21827 from MichaelEischer/fix-pack-repair
...
repair packs: correctly handle packs with missing/incomplete index entry
2026-05-31 15:57:50 +02:00
Michael Eischer
c95ef18afb
repository: fix error handling in repair pack if blob upload fails
2026-05-31 15:40:15 +02:00
Michael Eischer
640b2489f6
repository: repair pack: test handling of not indexed packs
2026-05-31 15:40:15 +02:00
Michael Eischer
6a3f447327
repository: repair pack: correctly handle incomplete index
2026-05-31 15:40:15 +02:00
Yaroslav Halchenko
451cc6c048
Add codespell support with configuration and fixes ( #21807 )
...
Co-authored-by: Claude Code 2.1.142 / Claude Opus 4.7 <noreply@anthropic.com >
2026-05-30 20:15:13 +00:00
Michael Eischer
c221cd06ad
repository: forget id of unreadable packs on index rebuild ( #21826 )
2026-05-30 22:09:33 +02:00
Michael Eischer
e7d3a4ae51
repository: repair pack: move pack reupload to helper
2026-05-30 10:15:16 +02:00
Michael Eischer
2a95591b48
index: replace custom EachByPackResult datatype
2026-05-30 10:11:18 +02:00
Michael Eischer
c669cc7a7d
introduce restic.Blobs type with sort method
2026-05-30 10:10:39 +02:00
Michael Eischer
a639b8d711
Merge pull request #21811 from MichaelEischer/misc-fixes
...
Address various code smells, outdated comments and nits
2026-05-20 22:38:36 +02:00
Winfried Plappert
990329013e
prune more aggresively ( #21803 )
...
Co-authored-by: Michael Eischer <michael.eischer@fau.de >
2026-05-16 15:49:08 +00:00
Michael Eischer
5caa33e7b9
repository/pack: prevent packer usage after error
...
In-depth hardening to prevent packer reuse after an error.
2026-05-16 15:35:42 +02:00
Michael Eischer
5c935e71fa
index: also preallocate hashed array tree
2026-05-10 00:35:17 +02:00
Michael Eischer
934c615e51
index: support index preallocation
2026-05-10 00:35:17 +02:00