[PATCH 1/3] restore: always return to parent after child restore attempt

1 view
Skip to first unread message

Rob Browning

unread,
Mar 15, 2026, 6:22:13 PM (9 days ago) Mar 15
to bup-...@googlegroups.com
Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
---
lib/bup/cmd/restore.py | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/lib/bup/cmd/restore.py b/lib/bup/cmd/restore.py
index 1aeff28a..0c971f23 100644
--- a/lib/bup/cmd/restore.py
+++ b/lib/bup/cmd/restore.py
@@ -189,14 +189,16 @@ def restore(repo, parent_path, name, item, top, sparse, numeric_ids, owner_map,
meta = item.meta
meta.create_path(name)
os.chdir(name)
- total_restored += 1
- if verbosity >= 0:
- qprogress('Restoring: %d\r' % total_restored)
- for sub_name, sub_item in sub_items:
- restore(repo, fullname, sub_name, sub_item, top, sparse,
- numeric_ids, owner_map, exclude_rxs, verbosity,
- hardlinks)
- os.chdir(b'..')
+ try:
+ total_restored += 1
+ if verbosity >= 0:
+ qprogress('Restoring: %d\r' % total_restored)
+ for sub_name, sub_item in sub_items:
+ restore(repo, fullname, sub_name, sub_item, top, sparse,
+ numeric_ids, owner_map, exclude_rxs, verbosity,
+ hardlinks)
+ finally:
+ os.chdir(b'..')
apply_metadata(meta, name, numeric_ids, owner_map)
else:
created_hardlink = False
--
2.47.3

Reply all
Reply to author
Forward
0 new messages