def patch(cls, dest_rpath, source_diffiter, start_index = ()): """Patch dest_rpath with an rorpiter of diffs""" ITR = rorpiter.IterTreeReducer(PatchITRB, [dest_rpath, cls.CCPP]) for diff in rorpiter.FillInIter(source_diffiter, dest_rpath): log.Log("Processing changed file " + diff.get_indexpath(), 5) ITR(diff.index, diff) ITR.Finish() cls.CCPP.close() dest_rpath.setdata()
def patch_and_increment(cls, dest_rpath, source_diffiter, inc_rpath): """Patch dest_rpath with rorpiter of diffs and write increments""" ITR = rorpiter.IterTreeReducer(IncrementITRB, [dest_rpath, inc_rpath, cls.CCPP]) for diff in rorpiter.FillInIter(source_diffiter, dest_rpath): log.Log("Processing changed file " + diff.get_indexpath(), 5) ITR(diff.index, diff) ITR.Finish() cls.CCPP.close() dest_rpath.setdata()
def patch(cls, target, diff_iter): """Patch target with the diffs from the mirror side This function and the associated ITRB is similar to the patching code in backup.py, but they have different error correction requirements, so it seemed easier to just repeat it all in this module. """ ITR = rorpiter.IterTreeReducer(PatchITRB, [target]) for diff in rorpiter.FillInIter(diff_iter, target): log.Log("Processing changed file " + diff.get_indexpath(), 5) ITR(diff.index, diff) ITR.Finish() target.setdata()