Conversation
simonsan
reviewed
Dec 26, 2023
simonsan
reviewed
Dec 26, 2023
jjedelsky
reviewed
Jan 3, 2024
e528c44 to
0b938fe
Compare
3 tasks
Member
Author
|
This PR is now ready but we may want to add the feature flag in our build-pipelines on selected targets (and include the dependencies) - in another PR. |
simonsan
reviewed
Oct 14, 2024
Member
Author
|
rebased on top of #1329 |
simonsan
reviewed
Oct 20, 2024
Contributor
|
Some things that I think we should do to prepare for this PR:
|
simonsan
approved these changes
Nov 10, 2024
Merged
simonsan
reviewed
Nov 11, 2024
| [mount] | ||
| path-template = "[{hostname}]/[{label}]/{time}" # The path template to use for snapshots. {id}, {id_long}, {time}, {username}, {hostname}, {label}, {tags}, {backup_start}, {backup_end} are replaced. [default: "[{hostname}]/[{label}]/{time}"]. Only relevant if no snapshot-path is given. | ||
| time-template = "%Y-%m-%d_%H-%M-%S" # only relevant if no snapshot-path is given | ||
| no-allow-other = true |
Contributor
There was a problem hiding this comment.
Would name that exclusive = true or exclusive-mount = true
| fh: u64, | ||
| offset: u64, | ||
| size: u32, | ||
|
|
| /// Don't allow other users to access the mount point | ||
| #[clap(long)] | ||
| #[merge(strategy=conflate::bool::overwrite_false)] | ||
| no_allow_other: bool, |
Contributor
There was a problem hiding this comment.
Same as above, exclusive_mount or exclusive is better I think.
| /// The mount point to use | ||
| #[clap(value_name = "PATH")] | ||
| #[merge(strategy=conflate::option::overwrite_none)] | ||
| mountpoint: Option<PathBuf>, |
aawsome
added a commit
that referenced
this pull request
Dec 2, 2024
## 🤖 New release * `rustic-rs`: 0.9.4 -> 0.9.5 (✓ API compatible changes) <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [0.9.5](v0.9.4...v0.9.5) - 2024-12-02 ### Added - *(commands)* More dump options ([#1339](#1339)) - shut down gracefully with ctrl+c ([#1364](#1364)) - Add --filter-jq option ([#1372](#1372)) - *(async)* use `is_async_compatible()` to determine backend incompatibility and error out ([#1355](#1355)) - *(commands)* Add `mount` command ([#973](#973)) ### Fixed - *(commands)* run backup hooks before checking source dir ([#1374](#1374)) - *(commands)* Use spawn_blocking in webdav when calling rustic_core ([#1365](#1365)) - *(filesystem)* Use channels to communicate within webdav filesystem ([#1361](#1361)) ### Other - Add documentation for `minutely` keep option ([#1371](#1371)) - update snapshots to include minutely configuration options - *(deps)* update rustic_core, bytes, and libc dependencies to latest versions - simplify lifetime annotations in OpenFileReader and TreeIterItem implementations - clean up whitespace and update clippy linting allowances - *(deps)* update dependencies to latest versions - *(deps)* update lockfile to get rid of vulnerable `url` version - *(mount)* rename fields for clarity, add user options for mount ([#1353](#1353)) - *(deps)* update dependencies - *(deps)* don't use rustic_core webdav feature ([#1367](#1367)) - Revert "fix(filesystem): Use channels to communicate within webdav filesystem ([#1361](#1361))" - Revert "feat(async): use `is_async_compatible()` to determine backend incompatibility and error out ([#1355](#1355))" - move `webdavfs` from `rustic_core` to `rustic-rs` ([#1363](#1363)) - *(clippy)* comment out unused lints in lib.rs - *(clippy)* apply fixes automatically - use BTreeMap for env in global options ([#1360](#1360)) - add tiny framework for testing rustic's compat with latest restic ([#1303](#1303)) - use snapshot tests for default config, show-config and completions ([#1359](#1359)) - *(deps)* update dependencies rustic_core, rustic_backend, rustic_testing, and migrate to conflate 0.3 ([#1357](#1357)) - fix typos - *(build)* add platform-dependent settings and remove ci flag for extra features - clarify `--use-profile` command in config by using long form ([#1344](#1344)) - *(deps)* update core and testing crates ([#1340](#1340)) </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/MarcoIeni/release-plz/). --------- Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com> Co-authored-by: Alexander Weiss <alex@weissfam.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds the
mountcommand to rustic to access snapshot contents as a read-only filesystem when the feature-flagmountis chosen.As for the
webdavcommand, there are following options:rustic mount /mnt 37a63e5b:/my/path.rustic mount /mnt --path-template "[{hostname}]/[{label}]/{time}" --time-template "%Y-%m-%d_%H-%M-%S"(these are also defined as default). Note that for all dirs containing only snapshots, also alatestentry is generated.latestand identical subsequent snapshots are symlinks when usingmount.This PR uses fuse_mt which is not optimal as it introduces some overhead (e.g. needs to save whole Paths in-memory).
Note: Requires rustic-rs/rustic_core#331 to properly show all data of files (without it builds and runs, but files are truncated and return error when reading).
Note: Building with the
mountfeature flag requires special dependencies and is only possible on supported platforms, see https://github.com/cberner/fusercloses #971