diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-06-25 18:04:08 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-06-25 18:04:08 +0000 |
commit | aa36fa26a216b2faf89b0bbd4d90fb16fd082f38 (patch) | |
tree | 4368b953be31798122ce1583cdcf5712c7cb073b /rdiff-backup/src/highlevel.py | |
parent | a8e880f1ad9cf62dc8b02fa60543b8925c10a846 (diff) | |
download | rdiff-backup-aa36fa26a216b2faf89b0bbd4d90fb16fd082f38.tar.gz |
More optimization: rewrote selection iteration to not recur, and added
"fast processing" to IterTreeReducer, so objects don't need to be
created in the typical case.
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@145 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/src/highlevel.py')
-rw-r--r-- | rdiff-backup/src/highlevel.py | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/rdiff-backup/src/highlevel.py b/rdiff-backup/src/highlevel.py index d6f30a1..660d8fe 100644 --- a/rdiff-backup/src/highlevel.py +++ b/rdiff-backup/src/highlevel.py @@ -108,7 +108,7 @@ class HLSourceStruct: """ collated = RORPIter.CollateIterators(cls.initial_dsiter2, sigiter) - finalizer = DestructiveSteppingFinalizer() + finalizer = IterTreeReducer(DestructiveSteppingFinalizer, []) def error_handler(exc, dest_sig, dsrp): Log("Error %s producing a diff of %s" % (exc, dsrp and dsrp.path), 2) @@ -213,26 +213,26 @@ class HLDestinationStruct: """Return finalizer, starting from session info if necessary""" old_finalizer = cls._session_info and cls._session_info.finalizer if old_finalizer: return old_finalizer - else: return DestructiveSteppingFinalizer() + else: return IterTreeReducer(DestructiveSteppingFinalizer, []) def get_ITR(cls, inc_rpath): """Return ITR, starting from state if necessary""" if cls._session_info and cls._session_info.ITR: return cls._session_info.ITR else: - iitr = IncrementITR(inc_rpath) - iitr.override_changed() - Globals.ITR = iitr - iitr.Errors = 0 + iitr = IterTreeReducer(IncrementITRB, [inc_rpath]) + iitr.root_branch.override_changed() + Globals.ITRB = iitr.root_branch + iitr.root_branch.Errors = 0 return iitr def get_MirrorITR(cls, inc_rpath): """Return MirrorITR, starting from state if available""" if cls._session_info and cls._session_info.ITR: return cls._session_info.ITR - ITR = MirrorITR(inc_rpath) - Globals.ITR = ITR - ITR.Errors = 0 + ITR = IterTreeReducer(MirrorITRB, [inc_rpath]) + Globals.ITRB = ITR.root_branch + ITR.root_branch.Errors = 0 return ITR def patch_and_finalize(cls, dest_rpath, diffs): @@ -282,7 +282,7 @@ class HLDestinationStruct: if Globals.preserve_hardlinks: Hardlink.final_writedata() MiscStats.close_dir_stats_file() - MiscStats.write_session_statistics(ITR) + MiscStats.write_session_statistics(ITR.root_branch) SaveState.checkpoint_remove() def patch_increment_and_finalize(cls, dest_rpath, diffs, inc_rpath): @@ -309,7 +309,7 @@ class HLDestinationStruct: if Globals.preserve_hardlinks: Hardlink.final_writedata() MiscStats.close_dir_stats_file() - MiscStats.write_session_statistics(ITR) + MiscStats.write_session_statistics(ITR.root_branch) SaveState.checkpoint_remove() def handle_last_error(cls, dsrp, finalizer, ITR): |