Michael Eischer
ccb828e87b
repository: add ChunkerFactory and decouple archiver from chunker
...
Introduce restic.Chunker and ChunkerFactory interfaces with a
repository-backed implementation. The archiver obtains chunkers via
ChunkerFactory() from the repository.
2026-06-27 22:13:41 +02:00
Michael Eischer
70a45791b2
archiver: switch file saver from Chunker to BaseChunker
...
Update the chunker dependency. Move the chunk memory handling into the
fileSaver. This minimizes the logic required in a chunker
implementation.
readNextChunk is a direct derivative of Chunker.Next.
2026-06-27 22:13:41 +02:00
Winfried Plappert
9e1a526611
Fix broken snapshots via restic repair snapshots --forget ( #21907 )
...
Co-authored-by: Michael Eischer <michael.eischer@fau.de >
2026-06-27 22:09:10 +02:00
Michael Eischer
aa94be2dbd
Merge pull request #21883 from MichaelEischer/fix-find-pack
...
find: improve blob resolution for broken pack files
2026-06-26 22:33:38 +02:00
Michael Eischer
804ff4bc95
find: add test for listing blobs from corrupt pack files
2026-06-26 22:16:55 +02:00
Michael Eischer
9670cd7459
find: fix fallback to index if pack cannot be listed
...
`find` would only look up completely missing pack files in the index. A
still existing but broken pack file would result in an error.
2026-06-26 22:16:55 +02:00
Michael Eischer
634e9b2411
find: check blobIDs/treeIDs presence by length
...
Depending on the code path, the map could be initialized but stay empty.
2026-06-26 21:46:30 +02:00
Gilbert Gilb's
db03aed816
feat(backends/s3): add warmup support for check command ( #5248 )
2026-06-25 20:46:55 +02:00
Michael Eischer
4e8eea7ab4
Merge pull request #21902 from restic/speedup-test
...
Cut local test suite execution time in half
2026-06-24 21:34:55 +02:00
Michael Eischer
981adc47ac
snapshots: improve wording for timezone information ( #21913 )
2026-06-24 19:49:07 +02:00
Michael Eischer
7134577c56
use constants from cobra for shell completion helper names ( #21905 )
2026-06-22 22:58:26 +02:00
Ricardo Sawir
55e335ec6c
fuse: reset treeCache on snapshot reload to fix stale latest symlink ( #21873 )
...
The treeCache in SnapshotsDir was never cleared when snapshots were
reloaded. This caused the "latest" symlink to keep pointing to the
previous snapshot even after new snapshots were added.
Add a generation counter to SnapshotsDirStructure that is incremented
whenever the directory structure is rebuilt (in makeDirs). The
treeCache checks this generation on each lookup and resets itself
when the generation changes, ensuring cached nodes (including symlinks)
are refreshed after a snapshot reload.
2026-06-22 18:31:51 +00:00
Winfried Plappert
d30d6b6281
backup - show excluded files and directories in verbose mode - text/JSON ( #21887 )
2026-06-21 16:11:42 +00:00
Eyüp Can Akman
8d7679c831
backup: skip source paths that cannot be accessed ( #21852 )
2026-06-21 17:16:16 +02:00
Michael Eischer
d9dd1b7534
archiver: ignore duplicate but excluded directory entry ( #21900 )
2026-06-21 15:49:08 +02:00
Michael Eischer
1151d70655
Merge pull request #21875 from MichaelEischer/fix-snapshots-latest-group-by
...
Fix default grouping of `snapshots --latest <n>`
2026-06-21 15:46:49 +02:00
Michael Eischer
369da8a770
snapshots: revert default --lastest behavior to pre-0.19.0
...
the changed behavior now only applies when using `--group-by`.
2026-06-21 15:28:22 +02:00
Michael Eischer
9f84c80056
snapshots: cleanup handling of deprecated --last option
2026-06-21 15:28:22 +02:00
Michael Eischer
6070462465
backup: move options finalization to BackupOptions.Finalize
2026-06-21 15:28:22 +02:00
Michael Eischer
1029fe6dd0
list packs snapshot: include actual error in error message ( #21903 )
2026-06-21 15:27:19 +02:00
Michael Eischer
8f00b335b4
rclone/fs: parallelize tests
2026-06-20 22:43:03 +02:00
Michael Eischer
c6a064b68b
mount: disable debug log for test
...
I don't recall any recent problems with that test.
2026-06-20 22:04:07 +02:00
Michael Eischer
8d191c19a5
archiver: decrease sleeps for TestFileChanged test
...
Modern filesystems provide microsecond granularity or better. The old
special case for macOS is removed as Go 1.25 (minimum for restic)
requires at least macOS 12, which uses APFS instead of the old HFS+.
2026-06-20 21:55:46 +02:00
Michael Eischer
d5267f03e0
use fastest compression in integration tests
2026-06-20 20:00:17 +02:00
Michael Eischer
5683224a3c
layout: skip creation of pack subdirectories in integration tests
...
Each time a local backend is created, the local backend also creates all
shard subdirectories. For the integration tests this has the downside
that this results in ~120 (number of test) * 256 (number of directories)
= 30k directories that are created unnecessarily. This significantly
slows down test execution and cleanup.
2026-06-20 20:00:17 +02:00
Michael Eischer
71064fac10
mount: decrease sleep to speed up test
2026-06-20 20:00:17 +02:00
Michael Eischer
52cde35aea
try deleting a directory before resetting the readonly status in tests
2026-06-20 20:00:17 +02:00
Michael Eischer
f394723aa2
inject crypto keys for integration tests
2026-06-20 20:00:17 +02:00
Michael Eischer
072305c5b3
repository: run version sub-tests of TestAllVersions in parallel
...
TestRepositoryIncrementalIndex no longer modified index.Full as this
modified global state and also had no effect on the test result.
2026-06-20 19:59:37 +02:00
Michael Eischer
a1420ea6c7
repository: use separate rand instance per test
...
Use separate instances to prevent data races when executing tests in
parallel.
2026-06-20 19:50:10 +02:00
Michael Eischer
a3be3bd9e1
backend/test: gradually increase timeout for TestListCancel to speed up fast backends
2026-06-20 19:46:22 +02:00
Michael Eischer
b24d05bcb4
skip key decryption in tests
2026-06-20 19:46:22 +02:00
Michael Eischer
c021b8cde0
decrease test data sizes
2026-06-20 19:46:22 +02:00
Michael Eischer
18e5c446e0
data/fs: faster comparison in tests
2026-06-20 19:46:22 +02:00
Michael Eischer
f91afb2fa8
repository: run TestPruneSmall in parallel to other tests
2026-06-20 19:46:22 +02:00
Michael Eischer
2148508050
repository/checker: speed up test repo creation
...
data.TestCreateSnapshot is much faster than archiver.TestSnapshot
2026-06-20 19:46:22 +02:00
Michael Eischer
37e8f50aeb
repository: decrease test data size for streamPack
2026-06-20 19:46:22 +02:00
Michael Eischer
7e5eaf1ead
crypto: decrease parameters for calibrate test
2026-06-20 19:46:22 +02:00
Michael Eischer
aae0985673
index: decrease depth of test repos
2026-06-20 19:46:22 +02:00
Michael Eischer
f9d953d4cd
index: test ForAllIndex with generated repo
2026-06-20 19:46:22 +02:00
Michael Eischer
69a3ba5b33
index: speed up oversized test data generation
2026-06-20 19:46:22 +02:00
Michael Eischer
c183fe2035
restore: speed up test data generation in newTestRepo
2026-06-20 19:46:22 +02:00
Michael Eischer
1174e97b30
restic: speed up repository config initialization in tests
...
Avoid redundant polynomial generation, which takes a millisecond or so.
2026-06-20 19:46:22 +02:00
Michael Eischer
440d925467
repository: default to fastest compression in tests
2026-06-20 19:46:22 +02:00
Michael Eischer
28521d27c1
Merge pull request #21897 from MichaelEischer/sftp-fix-chmod
...
backend/sftp: fix removing files on windows sftp
2026-06-20 19:29:49 +02:00
Michael Eischer
af64caf5d9
Merge pull request #21885 from MichaelEischer/separate-backend-restic-filetype
...
Separate backend.FileType from restic.FileType
2026-06-20 19:24:51 +02:00
Michael Eischer
9ab5fc59c2
restic: split FileType for backend.FileType
...
Equality of constants is enforced via internal/repository/filetype.go
using compile time checks.
2026-06-20 19:15:40 +02:00
Michael Eischer
6c509f7ac1
Correctly pair backend/restic.FileType with APIs
...
Use backend.FileType to interact with the backend. And restic.FileType
to interact with the repository.
2026-06-20 19:15:40 +02:00
Michael Eischer
ea699bb0ba
backend/rest: fix flaky test cleanup ( #21901 )
2026-06-20 19:14:54 +02:00
Michael Eischer
532f36a5a8
archiver: pass ItemAction to progress reporter instead of data.Node ( #21886 )
2026-06-20 19:06:45 +02:00