Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP store index in Flatbuffers #201

Draft
wants to merge 93 commits into
base: validate-output
Choose a base branch
from
Draft

Conversation

sourcefrog
Copy link
Owner

@sourcefrog sourcefrog commented Feb 6, 2023

  • Store the apath as a list of components, so that we can reuse references to earlier file parts

…json (#197)

Add `--trace-time`, `--log-json`, and `--metric-json`.

Use `tracing` macros to report errors rather than UI-specific things.

Separate out everything connected to terminal/nutmeg progress and output.

Return 2 if non-fatal errors or warnings occurred.

Respect `$CLICOLORS`.
This was supported in the type for a long time, but never actually
generated. It no longer seems like a good idea: rather than bands
having explicit parents, they can just share blocks.
Remove Eq, PartialEq, and a method that is incompatible. They're
barely used.
There currently are never any format flags set, but there
might be soon.

Add some more tests for this.
RestoreTree seems like an unnecessary object in Rust:
let's just use functions
They were using an enumerate visited by a par_iter,
which produces a chaotic ordering.
* Print restored files from a callback

Add an EntryChange object

These are returned from callbacks as files are handled.

Can be serialized to write out json changes

* Changes contain both old and new metadata

* Also use ChangeCallback from restore

* Rename backup option to change_callback

* impl Display for EntryChange

* Add restore --changes-json

* Refactor diff to use EntryChange

* Move diff printing into bin

* Add diff --json

* Move BackupStats to backup.rs

* Tidy up

* Better json repr from changes

* Fix tests: user/group currently only on Unix

* Clean up merge code

* Further simplify merge

* Further simplify merge

MatchedEntries is now directly an enum of Left, Right, or Both, and
knows how to convert itself to an EntryChange.

* Parameterize Change type

* comment

* Test --changes-json from backup
Better display of transport::ErrorKind

Add transport::ErrorKind::PermissionDenied
read_json returns REsult<Option> to more clearly handle not-found
Remove use of anyhow; stick with error enums
Define transport::Error, simplify errors

Back out addition of anyhow: use Error enums, but don't proliferate so many variants.

Make BandId Copy, and pass it by value.

Use Transport errors that could describe non-local errors.

Generally clean up error handling code.
Remove iterator to read Transport directories.

They should always be moderately small individually, and we almost
always want to read the whole directory. This should also make
async or remote transports easier.
Simplify Transport: remove dir iter, is_dir, url
cargo-mutants in CI on selected files
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