Skip to content

feat!: improve restore algorithm#453

Merged
aawsome merged 1 commit intomainfrom
improve-restore
Jan 13, 2026
Merged

feat!: improve restore algorithm#453
aawsome merged 1 commit intomainfrom
improve-restore

Conversation

@aawsome
Copy link
Member

@aawsome aawsome commented Dec 31, 2025

Enhances the blob-reading optimization used in the restore to also read small holes, like in #448.
In order to re-use the algorithm, a refactoring about blob locations has been done, making this PR a breaking change.

@codecov
Copy link

codecov bot commented Dec 31, 2025

Codecov Report

❌ Patch coverage is 50.54945% with 45 lines in your changes missing coverage. Please review.
✅ Project coverage is 42.8%. Comparing base (6286476) to head (07320a9).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
crates/core/src/commands/restore.rs 0.0% 28 Missing ⚠️
crates/core/src/blob.rs 61.1% 7 Missing ⚠️
crates/core/src/commands/prune.rs 54.5% 5 Missing ⚠️
crates/core/src/blob/packer.rs 80.0% 3 Missing ⚠️
crates/core/src/commands/repoinfo.rs 0.0% 1 Missing ⚠️
crates/core/src/index.rs 50.0% 1 Missing ⚠️
Additional details and impacted files
Files with missing lines Coverage Δ
crates/core/src/backend/decrypt.rs 48.9% <100.0%> (+0.5%) ⬆️
crates/core/src/commands/check.rs 64.2% <100.0%> (+0.6%) ⬆️
crates/core/src/index/binarysorted.rs 86.7% <100.0%> (-0.6%) ⬇️
crates/core/src/repofile/indexfile.rs 92.3% <ø> (-7.7%) ⬇️
crates/core/src/repofile/packfile.rs 75.0% <100.0%> (+5.0%) ⬆️
crates/core/src/commands/repoinfo.rs 0.0% <0.0%> (ø)
crates/core/src/index.rs 54.0% <50.0%> (-6.0%) ⬇️
crates/core/src/blob/packer.rs 49.0% <80.0%> (+0.1%) ⬆️
crates/core/src/commands/prune.rs 65.3% <54.5%> (-1.5%) ⬇️
crates/core/src/blob.rs 67.8% <61.1%> (-12.2%) ⬇️
... and 1 more

... and 17 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@aawsome aawsome changed the title feat: improve restore algorithm feat!: improve restore algorithm Jan 6, 2026
@aawsome aawsome merged commit 3a1dc95 into main Jan 13, 2026
25 checks passed
@aawsome aawsome deleted the improve-restore branch January 13, 2026 13:32
@rustic-release-plz rustic-release-plz bot mentioned this pull request Jan 10, 2026
aawsome added a commit to rustic-rs/rustic that referenced this pull request Jan 13, 2026
Adapts to the following core changes:
- `restore` optimizations
(rustic-rs/rustic_core#453)
- Modify and change options for saving nodes
(rustic-rs/rustic_core#461)
github-merge-queue bot pushed a commit that referenced this pull request Feb 11, 2026
## 🤖 New release

* `rustic_core`: 0.9.0 -> 0.10.0 (✓ API compatible changes)
* `rustic_backend`: 0.5.4 -> 0.6.0 (✓ API compatible changes)
* `rustic_testing`: 0.3.4 -> 0.4.0 (✓ API compatible changes)
* `rustic_config`: 0.2.3 -> 0.2.4 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

## `rustic_core`

<blockquote>

##
[0.10.0](rustic_core-v0.9.0...rustic_core-v0.10.0)
- 2026-02-09

### Added

- [**breaking**] Add support for batch warmup
([#438](#438))
- [**breaking**] Add masterkey as credential option
([#468](#468))
- improve copy algorithm
([#464](#464))
- [**breaking**] More rewrite features
([#465](#465))
- [**breaking**] Add rewrite command
([#462](#462))
- [**breaking**] extend LocalSourceSaveOptions
([#461](#461))
- [**breaking**] improve restore algorithm
([#453](#453))
- [**breaking**] change ignore-devid to with-devid
([#460](#460))
- Use Timestamp in index
([#458](#458))
- Optimize prune rewrite
([#448](#448))
- [**breaking**] Add support for multiple parents
([#427](#427))

### Fixed

- fix clippy lints
([#473](#473))
- Use jiff everywhere
([#467](#467))
- fix rewrite file count
([#466](#466))
- Return error if too few snapshots for latest~N
([#459](#459))
- Use early-delete-index only if instant-delete is selected
([#457](#457))
- fix clap runtime errors for parent options
([#456](#456))
- Use parents instead of parent; allow latest
([#455](#455))
- improve error handling for missing UID/GID name
([#454](#454))
- fix clippy lints
([#449](#449))

### Other

- update dependencies
([#475](#475))
- [**breaking**] Refactor snapshot grouping
([#474](#474))
- [**breaking**] Simplify Repository status
([#472](#472))
- [**breaking**] Simplify Progress
([#469](#469))
- update MSRV to 1.88.0
([#471](#471))
- FreeBSD build
([#440](#440))
- refactor! use jiff instead of chrono
([#452](#452))
</blockquote>

## `rustic_backend`

<blockquote>

##
[0.6.0](rustic_backend-v0.5.4...rustic_backend-v0.6.0)
- 2026-02-09

### Added

- [**breaking**] Add support for batch warmup
([#438](#438))
- *(backend/opendal)* include scheme in location() and bump opendal to
0.55.0 ([#446](#446))

### Fixed

- fix clippy lints
([#473](#473))
- Use jiff everywhere
([#467](#467))

### Other

- update dependencies
([#475](#475))
- update MSRV to 1.88.0
([#471](#471))
</blockquote>

## `rustic_testing`

<blockquote>

##
[0.4.0](rustic_testing-v0.3.4...rustic_testing-v0.4.0)
- 2026-02-09

### Added

- [**breaking**] Add support for batch warmup
([#438](#438))
</blockquote>

## `rustic_config`

<blockquote>

##
[0.2.4](rustic_config-v0.2.3...rustic_config-v0.2.4)
- 2026-02-09

### Other

- update MSRV to 1.88.0
([#471](#471))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant