diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-01-19 09:45:34 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-01-19 09:45:34 +0000 |
commit | 68a932a43eeb238988beada686c1f175caba4441 (patch) | |
tree | e5f684a1c8a482446ed68c7795a67c31f324a5e7 | |
parent | 574334a0fee6e39a8918259c364cecb48ef100d7 (diff) | |
parent | 6c462e17afcd9a13c9a2f4517db5dcaf88c80e77 (diff) | |
download | obnam2-68a932a43eeb238988beada686c1f175caba4441.tar.gz |
Merge branch 'skipped-fix' into 'main'
fix: if a file is skipped, don't include it in the new backup
Closes #177
See merge request obnam/obnam!213
-rw-r--r-- | src/backup_run.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/backup_run.rs b/src/backup_run.rs index 3787494..0b816bf 100644 --- a/src/backup_run.rs +++ b/src/backup_run.rs @@ -234,7 +234,8 @@ impl<'a> BackupRun<'a> { Err(err) => { warnings.push(err); } - Ok(o) => { + Ok(None) => (), + Ok(Some(o)) => { if let Err(err) = new.insert(o.entry, &o.ids, o.reason, o.is_cachedir_tag) { @@ -257,16 +258,17 @@ impl<'a> BackupRun<'a> { &self, entry: AnnotatedFsEntry, old: &LocalGeneration, - ) -> Result<FsEntryBackupOutcome, BackupError> { + ) -> Result<Option<FsEntryBackupOutcome>, BackupError> { let path = &entry.inner.pathbuf(); info!("backup: {}", path.display()); self.found_live_file(path); let reason = self.policy.needs_backup(old, &entry.inner); match reason { Reason::IsNew | Reason::Changed | Reason::GenerationLookupError | Reason::Unknown => { - Ok(self.backup_one_entry(&entry, path, reason).await) + Ok(Some(self.backup_one_entry(&entry, path, reason).await)) } - Reason::Unchanged | Reason::Skipped | Reason::FileError => { + Reason::Skipped => Ok(None), + Reason::Unchanged | Reason::FileError => { let fileno = old.get_fileno(&entry.inner.pathbuf())?; let ids = if let Some(fileno) = fileno { let mut ids = vec![]; @@ -277,12 +279,12 @@ impl<'a> BackupRun<'a> { } else { vec![] }; - Ok(FsEntryBackupOutcome { + Ok(Some(FsEntryBackupOutcome { entry: entry.inner, ids, reason, is_cachedir_tag: entry.is_cachedir_tag, - }) + })) } } } |