mirror of
https://github.com/rustic-rs/rustic.git
synced 2025-10-26 11:18:51 +00:00
Merge pull request #14 from rustic-rs/change-status-special-files
backup: Add changed status for special files
This commit is contained in:
commit
fb6f2794f7
@ -64,6 +64,21 @@ impl<BE: DecryptWriteBackend, I: IndexedBackend> Archiver<BE, I> {
|
||||
}
|
||||
|
||||
pub fn add_file(&mut self, node: Node, size: u64) {
|
||||
let filename = self.path.join(node.name());
|
||||
match self.parent.is_parent(&node) {
|
||||
ParentResult::Matched(_) => {
|
||||
v2!("unchanged file: {:?}", filename);
|
||||
self.summary.files_unmodified += 1;
|
||||
}
|
||||
ParentResult::NotMatched => {
|
||||
v2!("changed file: {:?}", filename);
|
||||
self.summary.files_changed += 1;
|
||||
}
|
||||
ParentResult::NotFound => {
|
||||
v2!("new file: {:?}", filename);
|
||||
self.summary.files_new += 1;
|
||||
}
|
||||
}
|
||||
self.tree.add(node);
|
||||
self.summary.total_files_processed += 1;
|
||||
self.summary.total_bytes_processed += size;
|
||||
@ -176,32 +191,19 @@ impl<BE: DecryptWriteBackend, I: IndexedBackend> Archiver<BE, I> {
|
||||
}
|
||||
|
||||
pub async fn backup_file(&mut self, path: &Path, node: Node, p: ProgressBar) -> Result<()> {
|
||||
let filename = self.path.join(node.name());
|
||||
match self.parent.is_parent(&node) {
|
||||
ParentResult::Matched(p_node) => {
|
||||
v2!("unchanged file: {:?}", filename);
|
||||
self.summary.files_unmodified += 1;
|
||||
if p_node.content().iter().all(|id| self.index.has_data(id)) {
|
||||
let size = *p_node.meta().size();
|
||||
let mut node = node;
|
||||
node.set_content(p_node.content().to_vec());
|
||||
self.add_file(node, size);
|
||||
p.inc(size);
|
||||
return Ok(());
|
||||
} else {
|
||||
ve1!(
|
||||
"missing blobs in index for unchanged file {:?}; re-reading file",
|
||||
self.path.join(node.name())
|
||||
);
|
||||
}
|
||||
}
|
||||
ParentResult::NotMatched => {
|
||||
v2!("changed file: {:?}", filename);
|
||||
self.summary.files_changed += 1;
|
||||
}
|
||||
ParentResult::NotFound => {
|
||||
v2!("new file: {:?}", filename);
|
||||
self.summary.files_new += 1;
|
||||
if let ParentResult::Matched(p_node) = self.parent.is_parent(&node) {
|
||||
if p_node.content().iter().all(|id| self.index.has_data(id)) {
|
||||
let size = *p_node.meta().size();
|
||||
let mut node = node;
|
||||
node.set_content(p_node.content().to_vec());
|
||||
self.add_file(node, size);
|
||||
p.inc(size);
|
||||
return Ok(());
|
||||
} else {
|
||||
ve1!(
|
||||
"missing blobs in index for unchanged file {:?}; re-reading file",
|
||||
self.path.join(node.name())
|
||||
);
|
||||
}
|
||||
}
|
||||
let f = File::open(path)?;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user