summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-06-24 16:07:47 +0300
committerLars Wirzenius <liw@liw.fi>2017-06-24 16:07:47 +0300
commitc534eb08d1bb525e485882e61858ed0083464fb7 (patch)
treedccac451b8c3f435cd4fce6c1da756a4187d3685
parent7064569464478d79f800e3253382e525a1c73086 (diff)
downloadobnam-c534eb08d1bb525e485882e61858ed0083464fb7.tar.gz
Fix: remove old cowtree after new one's been committed
-rw-r--r--obnamlib/fmt_ga/cowtree.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/obnamlib/fmt_ga/cowtree.py b/obnamlib/fmt_ga/cowtree.py
index 7f84d8e1..dbfdcf81 100644
--- a/obnamlib/fmt_ga/cowtree.py
+++ b/obnamlib/fmt_ga/cowtree.py
@@ -86,6 +86,7 @@ class CowTree(object):
if len(leaf) > 0:
self._add_leaf(leaf_list, leaf)
leaf_id = self._put_leaf_list(leaf_list)
+ self._remove_old_tree(self._leaf_list)
return leaf_id
def _add_leaf(self, leaf_list, leaf):
@@ -99,3 +100,7 @@ class CowTree(object):
list_id = self._store.put_leaf(fake_leaf)
self._store.flush()
return list_id
+
+ def _remove_old_tree(self, leaf_list): # pragma: no cover
+ for leaf_id in leaf_list.leaves():
+ self._store.remove_leaf(leaf_id)