summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/restore.py
diff options
context:
space:
mode:
authorbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2003-10-12 05:24:25 +0000
committerbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2003-10-12 05:24:25 +0000
commit5ccca65dec1ef00d3551493958af5ee27e7df212 (patch)
treef4c311256bc8dd7722852b526f98908943eebd8b /rdiff-backup/rdiff_backup/restore.py
parent34471974703bc788103b28f12abc37ad1e249623 (diff)
downloadrdiff-backup-5ccca65dec1ef00d3551493958af5ee27e7df212.tar.gz
New hard link system should use less memory
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@468 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
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"""