summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/restore.py
diff options
context:
space:
mode:
authorbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2004-01-29 02:28:06 +0000
committerbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2004-01-29 02:28:06 +0000
commitbf2c5668024ab586e07b0e83ed1b731560977ddd (patch)
tree8a079549e757d2cddfeb4fe577a659161a03f20c /rdiff-backup/rdiff_backup/restore.py
parenta64c39a160a1c14d200695331fee3efb40fe05ae (diff)
downloadrdiff-backup-bf2c5668024ab586e07b0e83ed1b731560977ddd.tar.gz
First attempt at --compare switch (untested).
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@512 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/restore.py')
-rw-r--r--rdiff-backup/rdiff_backup/restore.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/rdiff-backup/rdiff_backup/restore.py b/rdiff-backup/rdiff_backup/restore.py
index 86795b1..af097b1 100644
--- a/rdiff-backup/rdiff_backup/restore.py
+++ b/rdiff-backup/rdiff_backup/restore.py
@@ -98,6 +98,27 @@ def ListAtTime(mirror_rp, inc_rp, time):
old_iter = MirrorStruct.get_mirror_rorp_iter(_rest_time, 1)
for rorp in old_iter: yield rorp
+def Compare(src_iter, mirror_rp, inc_rp, compare_time):
+ """Compares metadata in src_rp dir with metadata in mirror_rp at time"""
+ MirrorStruct.set_mirror_and_rest_times(compare_time)
+ MirrorStruct.initialize_rf_cache(mirror_rp, inc_rp)
+
+ mir_iter = MirrorStruct.get_mirror_rorp_iter(compare_time, 1)
+ collated = rorpiter.Collate2Iters(src_iter, mir_iter)
+ changed_files_found = 0
+ for src_rorp, mir_rorp in collated:
+ if src_rorp == mir_rorp: continue
+ changed_files_found = 1
+ if not mir_rorp: change = "new"
+ elif not src_rorp: change = "deleted"
+ else: change = "changed"
+ path_desc = (src_rorp and src_rorp.get_indexpath() or
+ mir_rorp.get_indexpath())
+ Log("%-7s %s" % (change, path_desc), 3)
+ if not changed_file_found:
+ Log("No changes found. Directory matches archive data.", 3)
+ MirrorStruct.close_rf_cache()
+
class MirrorStruct:
"""Hold functions to be run on the mirror side"""