fix: skip empty files on vault update

feat/type-attributes
Tomáš Mládek 2022-10-18 18:29:23 +02:00
parent c87304602d
commit 11a62b274f
2 changed files with 8 additions and 1 deletions

View File

@ -245,12 +245,14 @@ impl FsStore {
let mut failed: Vec<(&PathBuf, &StoreError)> = vec![];
let mut created = 0;
let mut unchanged = 0;
let mut skipped = 0;
let mut deleted = 0;
for outcome in &all_outcomes {
match outcome {
UpdatePathOutcome::Added(_) => created += 1,
UpdatePathOutcome::Unchanged(_) => unchanged += 1,
UpdatePathOutcome::Skipped(_) => skipped += 1,
UpdatePathOutcome::Removed(_) => deleted += 1,
UpdatePathOutcome::Failed(path, err) => failed.push((path, err)),
}
@ -269,10 +271,11 @@ impl FsStore {
}
info!(
"Finished updating {:?} ({} created, {} deleted, {} left unchanged). Took {}s.",
"Finished updating {:?} ({} created, {} deleted, {} skipped, {} left unchanged). Took {}s.",
self.path,
created,
deleted,
skipped,
unchanged,
start.elapsed().as_secs()
);
@ -306,6 +309,9 @@ impl FsStore {
if size < 0 {
panic!("File {} too large?!", path.display());
}
if size == 0 {
return Ok(UpdatePathOutcome::Skipped(path.clone()));
}
let mtime = metadata
.modified()
.map(|t| {

View File

@ -46,6 +46,7 @@ impl Blob {
pub enum UpdatePathOutcome {
Added(PathBuf),
Unchanged(PathBuf),
Skipped(PathBuf),
Removed(PathBuf),
Failed(PathBuf, StoreError),
}