Michael Eischer
1a9decf03e
repository: show correct error if zstd decoder cannot be initialized
2026-06-14 16:52:40 +02:00
Michael Eischer
718f09e02d
selfupdate: improve error handling
2026-06-14 16:51:56 +02:00
Michael Eischer
82708ff7f7
prune/repair pack: document ignored errors
2026-06-14 16:51:56 +02:00
Michael Eischer
18c47c5bf9
backend/util: fix errorhandling in DefaultDelete test helper
2026-06-14 16:40:09 +02:00
Michael Eischer
faea0d677a
backend/sftp: fix file handle leak if chmod for a file fails
2026-06-14 16:39:42 +02:00
Michael Eischer
ae8fdb08fa
backend/rest: correctly close body on out of bounds read
2026-06-14 16:38:54 +02:00
Michael Eischer
5c8c048c1a
backend/b2: correctly close file if too short
2026-06-14 16:38:21 +02:00
Michael Eischer
6b88b072e0
forget: fix error handling if snapshot key cannot be marshaled
2026-06-14 16:37:58 +02:00
Michael Eischer
7d36449ea8
repository: change LoadBlob, LookupBlob and LookupBlobSize to BlobHandles ( #21857 )
2026-06-14 15:30:00 +02:00
Michael Eischer
71f38d266c
ensure reliable cleanup of test repository ( #21880 )
2026-06-14 14:25:00 +02:00
Michael Eischer
0536e15bbf
snapshots: show location name instead of current timezone ( #21877 )
2026-06-14 14:02:20 +02:00
Michael Eischer
650f658244
repository/index: ensure progress bar cancelation on early index load failure ( #21881 )
2026-06-14 13:56:24 +02:00
Michael Eischer
ae96b2a0f8
mount: fix crash in mountpoint validation ( #21879 )
2026-06-14 13:55:26 +02:00
Michael Eischer
ce9b6ceea1
Merge pull request #21862 from MichaelEischer/lock-cleanup
...
Move Lock type to repository package and clean it up a bit
2026-06-13 21:46:26 +02:00
Michael Eischer
406dec29a7
repository: remove redundant mutex in checkForOtherLocks
...
forAllLocks already serializes the callback calls. Still has to create a
copy of checkedIDs to prevent a data race between forAllLocks and the
callback.
2026-06-13 21:37:24 +02:00
Michael Eischer
6fe10a72eb
repository: drop mutex from lockHandle
2026-06-13 21:37:06 +02:00
Michael Eischer
1a6d43286a
repository: comment cleanups
2026-06-13 21:36:36 +02:00
Michael Eischer
151903d4d4
repository: fix goroutine leak due to delayedCancelContext in tests
2026-06-13 21:35:51 +02:00
Michael Eischer
b86568b790
repository: merge Unlocker and lockContext
2026-06-13 21:35:41 +02:00
Michael Eischer
a5f3256626
repository: partially deduplicate refresh and refreshStaleLock
2026-06-13 21:33:58 +02:00
Michael Eischer
5989671f87
repository: deduplicate error handling in checkForOtherLocks
2026-06-13 21:33:43 +02:00
Michael Eischer
b7f3a1367a
repository: add SIGHUP handler only on Unix systems
2026-06-13 21:33:27 +02:00
Michael Eischer
4838b0ae3e
repository: cleanup naming of lockCtx
2026-06-13 21:33:19 +02:00
Michael Eischer
c87da70af9
repository: separate Lock in-repository from lock handle
...
Reduce Lock to a pure data transfer object and move the logic to
lockHandle.
2026-06-13 21:33:03 +02:00
Michael Eischer
81b6414c55
repository: hide Lock methods
...
Unexport lock file methods except String. Lock file operations are only
used within the repository package.
2026-06-13 21:32:13 +02:00
Michael Eischer
637c1cfb66
repository: unexport internal lock file helpers
...
Unexport UnlockCancelDelay, IsInvalidLock, ErrRemovedLock, NewLock,
StaleLockTimeout and ForAllLocks
2026-06-13 21:31:27 +02:00
Michael Eischer
b892b1a150
repository: move lock file handling from restic package
2026-06-13 21:31:23 +02:00
Michael Eischer
7015da44ad
restic: extract UidGidInt into separate files
...
Extract UidGidInt to simplify moving the locking code to the repository.
2026-06-13 21:24:38 +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
22a304af7e
Merge pull request #21849 from restic/internal-crypto-package
...
repository: move crypto package to internal/repository/crypto
2026-06-13 20:33:24 +02:00
Michael Eischer
c8a0bc2c5e
repository: move crypto package to internal/repository/crypto
2026-06-13 20:05:06 +02:00
Michael Eischer
35e60dc2c7
restic: remove Key() from repository interface
...
All callers use the concrete Repository type
2026-06-13 20:05:06 +02:00
Michael Eischer
8e93172bf8
cache: remove dependency on crypto package for truncation checks
...
The cache backend + repository can by now properly recover from damaged
files stored in the cache. Thus, remove the legacy sanity check.
2026-06-13 20:05:05 +02:00
Michael Eischer
b94ef4831d
repository: add PackBlob.UncompressedCiphertextLength()
2026-06-13 20:05:05 +02:00
Michael Eischer
952b310d62
Merge pull request #21851 from MichaelEischer/misc-cleanups2
...
Unexport lots of methods and structs
2026-06-13 20:03:18 +02:00
Michael Eischer
3eb5f83db3
fs: more vss related unexports
2026-06-13 19:54:32 +02:00
Michael Eischer
d3ef21f870
archiver: unexport BackupTarget type
2026-06-13 19:54:12 +02:00
Michael Eischer
31df7508c4
archiver: unexport Options.ApplyDefaults
2026-06-13 19:53:51 +02:00
Michael Eischer
87c9ed4573
archiver: unexport toNoder
2026-06-13 19:53:31 +02:00
Michael Eischer
eedba12968
bloblru: unexport add and get
2026-06-13 19:53:13 +02:00
Michael Eischer
264cfbcff2
data: remove unused Nodes type
2026-06-13 19:52:49 +02:00
Michael Eischer
7f3c9eb749
data: unexport fixTime
2026-06-13 19:52:27 +02:00
Michael Eischer
347cac780d
data: unexport osType
2026-06-13 19:52:07 +02:00
Michael Eischer
23d6946fc9
fs: unexport CommandReader type
2026-06-13 19:51:49 +02:00
Michael Eischer
2db654533b
fs: unexport Reader type
2026-06-13 19:51:33 +02:00
Michael Eischer
f5843a7d97
fs: unexport more vss types
2026-06-13 19:51:14 +02:00
Michael Eischer
e1e7fc8fb2
fs: unexport Local and expose via NewLocal
2026-06-13 19:50:49 +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
35caceace4
restore: unexport HardlinkIndex.Index and hardlinkKey
2026-06-13 19:12:05 +02:00
Michael Eischer
f2ff05f840
Merge pull request #21848 from restic/shrink-repository-interface
...
move restic.{Blob,Blobs,PackedBlob} types to `./internal/repository/pack` package
2026-06-13 19:11:33 +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
97f1e99ed9
restic: add PackBlob interface and implement it on PackedBlob
...
The PackBlob interface will allow hiding details from the public
interface, in particular, the offset of a blob within a pack file.
2026-06-13 17:54:18 +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 and Michael Eischer
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
9f9a3472aa
Merge pull request #21850 from MichaelEischer/misc-cleanups
...
Cleanup `ui/*` package and minor cleanups in `test` and `walker`
2026-06-13 17:12:14 +02:00
Michael Eischer
14f86a462a
stats: refactor ui progress printer into ui/stats
2026-06-13 17:00:11 +02:00
Michael Eischer
825d67ba4b
backup,restore: move CalculateProgressInterval call to their ui package
2026-06-13 16:53:57 +02:00
Michael Eischer
3b8b77e54d
test: remove unused exports
2026-06-13 16:53:57 +02:00
Michael Eischer
0bbfb072af
ui/progress: unexport NoopPrinter and add New* function
2026-06-13 16:53:57 +02:00
Michael Eischer
e8ed2434cd
ui: move NewProgressPrinter to ui/progress.NewTerminalPrinter
2026-06-13 16:53:54 +02:00
Michael Eischer
c04f3e9d6c
ui: unexport json and text progress
2026-06-13 16:53:30 +02:00
Michael Eischer
37fdbe5779
ui: inline Message into progressPrinter
2026-06-13 16:53:30 +02:00
Michael Eischer
47328afb2e
ui/progress: remove unused test helper
2026-06-13 16:53:30 +02:00
Michael Eischer
e6d054d896
walker: remove empty testing.go
2026-06-13 16:53:30 +02:00
Michael Eischer
fc81a0b6ad
ui/terminal: unexport Terminal type
2026-06-13 16:53:30 +02:00
Michael Eischer
dee28f5b0e
ui/terminal: unexport New function
2026-06-13 16:53:30 +02:00
Michael Eischer
2d02a1ad39
doc: clarify forget --prune --json output ( #21878 )
2026-06-13 16:47:15 +02:00
Michael Eischer
bae49d00ee
stats: hide progress bar for json output ( #21871 )
2026-06-13 15:13:26 +02:00
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
bf56d71b09
Merge pull request #21876 from MichaelEischer/cleanup-mount-validation
...
mount: refactor mountpoint validation
2026-06-12 23:34:44 +02:00
Michael Eischer
e94ec65efb
mount: unify mountpoint validation error messages
2026-06-12 22:30:53 +02:00
Michael Eischer
49f9e67520
mount: factor out mountpoint validation into helper
2026-06-12 22:29:45 +02:00
Michael Eischer
3a4b0e3b8c
Merge pull request #5348 from zmanda/fix-gh-5234-prevent-mount-command-over-repository
...
mount: prevent mounting over repository
2026-06-12 22:27:50 +02: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
784812361e
Merge pull request #21858 from MichaelEischer/unexport-backends
...
Unexport several backend types
2026-06-10 22:51:32 +02:00
Michael Eischer
c745f810b3
backend/cache: use backend types not restic types ( #21860 )
2026-06-10 22:45:39 +02:00
Michael Eischer
721411e04c
backend/azure/gs/s3: remove unused Path() method
2026-06-10 22:37:07 +02:00
Michael Eischer
b07ff6cd34
backends: remove unused SetListMax method
...
It was never used. Remove the dead code.
2026-06-10 22:37:07 +02:00
Michael Eischer
8b3bbb527c
backend/s3: unexport
2026-06-10 22:37:07 +02:00
Michael Eischer
4a2d8e04aa
backend/rclone: unexport
2026-06-10 22:37:07 +02:00
Michael Eischer
a36488b706
backend/gs: unexport
2026-06-10 22:37:07 +02:00
Michael Eischer
cfb506a77a
backend/cache: unexport
2026-06-10 22:37:07 +02:00
Michael Eischer
a15b1579ff
Merge pull request #21846 from restic/repository-cleanups
...
Cleanup repository package
2026-06-10 22:36:04 +02:00
Michael Eischer
ff95080f36
restic: move test helpers and drop unused JSONUnpackedLoader
2026-06-10 22:20:28 +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
5683180a3b
upgrade compress library
2026-06-10 22:03:56 +02:00