Commit 0568bf6d authored by bescoto's avatar bescoto

R


git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup@478 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
parent 9c706cf3
...@@ -579,7 +579,6 @@ def restore_set_root(rpin): ...@@ -579,7 +579,6 @@ def restore_set_root(rpin):
parent_dir = rpath.RPath(rpin.conn, "/".join(pathcomps[:i])) parent_dir = rpath.RPath(rpin.conn, "/".join(pathcomps[:i]))
if (parent_dir.isdir() and if (parent_dir.isdir() and
"rdiff-backup-data" in parent_dir.listdir()): break "rdiff-backup-data" in parent_dir.listdir()): break
print "##########", parent_dir.path, Globals.restrict_path
if parent_dir.path == rpin.conn.Globals.get('restrict_path'): if parent_dir.path == rpin.conn.Globals.get('restrict_path'):
return None return None
i = i-1 i = i-1
......
...@@ -525,29 +525,39 @@ as data loss may result.\n""" % (self.mirror_rp.get_indexpath(),), 2) ...@@ -525,29 +525,39 @@ as data loss may result.\n""" % (self.mirror_rp.get_indexpath(),), 2)
""" """
if not inc_rpath.isdir(): return if not inc_rpath.isdir(): return
inc_dict = {} # dictionary of basenames:IndexedTuples(index, inc_list)
dirlist = robust.listrp(inc_rpath) def get_inc_pairs():
"""Return unsorted list of (basename, inc_filenames) pairs"""
def affirm_dict_indexed(basename): inc_dict = {} # dictionary of basenames:inc_filenames
"""Make sure the rid dictionary has given basename as key""" dirlist = robust.listrp(inc_rpath)
if not inc_dict.has_key(basename):
sub_inc_rp = inc_rpath.append(basename) def add_to_dict(filename):
inc_dict[basename] = rorpiter.IndexedTuple(sub_inc_rp.index, """Add filename to the inc tuple dictionary"""
(sub_inc_rp, [])) rp = inc_rpath.append(filename)
if rp.isincfile() and rp.getinctype() != 'data':
def add_to_dict(filename): basename = rp.getincbase_str()
"""Add filename to the inc tuple dictionary""" inc_filename_list = inc_dict.setdefault(basename, [])
rp = inc_rpath.append(filename) inc_filename_list.append(filename)
if rp.isincfile() and rp.getinctype() != 'data': elif rp.isdir(): inc_dict.setdefault(filename, [])
basename = rp.getincbase_str()
affirm_dict_indexed(basename) for filename in dirlist: add_to_dict(filename)
inc_dict[basename][1].append(rp) return inc_dict.items()
elif rp.isdir(): affirm_dict_indexed(filename)
def inc_filenames2incrps(filenames):
for filename in dirlist: add_to_dict(filename) """Map list of filenames into increment rps"""
keys = inc_dict.keys() l = []
keys.sort() for filename in filenames:
for key in keys: yield inc_dict[key] rp = inc_rpath.append(filename)
assert rp.isincfile(), rp.path
l.append(rp)
return l
items = get_inc_pairs()
items.sort() # Sorting on basis of basename now
for (basename, inc_filenames) in items:
sub_inc_rpath = inc_rpath.append(basename)
yield rorpiter.IndexedTuple(sub_inc_rpath.index,
(sub_inc_rpath, inc_filenames2incrps(inc_filenames)))
class PatchITRB(rorpiter.ITRBranch): class PatchITRB(rorpiter.ITRBranch):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment