summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2022-01-19 09:45:34 +0000
committerLars Wirzenius <liw@liw.fi>2022-01-19 09:45:34 +0000
commit68a932a43eeb238988beada686c1f175caba4441 (patch)
treee5f684a1c8a482446ed68c7795a67c31f324a5e7
parent574334a0fee6e39a8918259c364cecb48ef100d7 (diff)
parent6c462e17afcd9a13c9a2f4517db5dcaf88c80e77 (diff)
downloadobnam2-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.rs14
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,
- })
+ }))
}
}
}