summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/restore.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/rdiff_backup/restore.py')
-rw-r--r--rdiff-backup/rdiff_backup/restore.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/rdiff-backup/rdiff_backup/restore.py b/rdiff-backup/rdiff_backup/restore.py
index 8d64c36..7a4f0bf 100644
--- a/rdiff-backup/rdiff_backup/restore.py
+++ b/rdiff-backup/rdiff_backup/restore.py
@@ -235,15 +235,17 @@ class MirrorStruct:
def get_diffs_from_collated(cls, collated):
"""Get diff iterator from collated"""
for mir_rorp, target_rorp in collated:
- if Globals.preserve_hardlinks:
- if mir_rorp: Hardlink.add_rorp(mir_rorp, source = 1)
- if target_rorp: Hardlink.add_rorp(target_rorp, source = 0)
-
+ if Globals.preserve_hardlinks and mir_rorp:
+ Hardlink.add_rorp(mir_rorp, target_rorp)
if (not target_rorp or not mir_rorp or
not mir_rorp == target_rorp or
(Globals.preserve_hardlinks and not
Hardlink.rorp_eq(mir_rorp, target_rorp))):
- yield cls.get_diff(mir_rorp, target_rorp)
+ diff = cls.get_diff(mir_rorp, target_rorp)
+ else: diff = None
+ if Globals.preserve_hardlinks and mir_rorp:
+ Hardlink.del_rorp(mir_rorp)
+ if diff: yield diff
def get_diff(cls, mir_rorp, target_rorp):
"""Get a diff for mir_rorp at time"""