diff --git a/src/database/stores/fs/mod.rs b/src/database/stores/fs/mod.rs index 73924bd..58c56b8 100644 --- a/src/database/stores/fs/mod.rs +++ b/src/database/stores/fs/mod.rs @@ -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| { diff --git a/src/database/stores/mod.rs b/src/database/stores/mod.rs index 6514c82..09a2c9c 100644 --- a/src/database/stores/mod.rs +++ b/src/database/stores/mod.rs @@ -46,6 +46,7 @@ impl Blob { pub enum UpdatePathOutcome { Added(PathBuf), Unchanged(PathBuf), + Skipped(PathBuf), Removed(PathBuf), Failed(PathBuf, StoreError), }