From: Eduardo Robles Elvira Date: Thu, 8 Aug 2013 08:07:35 +0000 (+0200) Subject: fixing bug in diff engine making it fail when a directory is removed X-Git-Tag: v2.2~117 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=d86735e46b7165e4bf9b164c700bcd9474af863a;p=python-delta-tar fixing bug in diff engine making it fail when a directory is removed --- diff --git a/deltatar/deltatar.py b/deltatar/deltatar.py index 3bb8487..2b37bd9 100644 --- a/deltatar/deltatar.py +++ b/deltatar/deltatar.py @@ -318,6 +318,10 @@ class DeltaTar(object): while queue: cur_path = queue.pop() + # it might have been removed in the mean time + if not os.path.exists(cur_path): + continue + for child in walk_dir(cur_path): is_dir = os.path.isdir(child) status = self.filter_path(child, source_path, is_dir) diff --git a/testing/test_deltatar.py b/testing/test_deltatar.py index eb9d840..8c45314 100644 --- a/testing/test_deltatar.py +++ b/testing/test_deltatar.py @@ -1018,6 +1018,7 @@ class DeltaTarTest(BaseTest): self.hash["source_dir/bigdir/a"] = self.create_file("source_dir/bigdir/a", 100) self.hash["source_dir/bigdir/b"] = self.create_file("source_dir/bigdir/b", 500) self.hash["source_dir/zzzz"] = self.create_file("source_dir/zzzz", 100) + shutil.rmtree("source_dir/test") deltatar.create_diff_backup("source_dir", "backup_dir2", prev_index_path)