diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-08-01 16:00:52 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-08-01 16:12:27 +0300 |
commit | 27f87020b12ef378c469089d9d6f7c6c5df22b14 (patch) | |
tree | ff2f045319cf45374ac8ed2b8c514670bbe5b85c | |
parent | 79007e1c701068f807da02f9e906a5a3750d0bde (diff) | |
download | obnam-27f87020b12ef378c469089d9d6f7c6c5df22b14.tar.gz |
forget: Commit changes after each generation
This means that if the forget operation is aborted, the next run will
not have to re-do the work for all generations that were already
processed.
Suggested-by: Lukáš Poláček
-rw-r--r-- | obnamlib/plugins/forget_plugin.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/obnamlib/plugins/forget_plugin.py b/obnamlib/plugins/forget_plugin.py index a698d177..c7352c99 100644 --- a/obnamlib/plugins/forget_plugin.py +++ b/obnamlib/plugins/forget_plugin.py @@ -82,7 +82,16 @@ class ForgetPlugin(obnamlib.ObnamPlugin): else: removeids = [] - self.remove_generations(removeids) + self.app.ts['gens'] = removeids + for genid in removeids: + self.app.ts['gen'] = genid + self.remove(genid) + self.repo.commit_client(client_name) + self.repo.commit_chunk_indexes() + self.repo.remove_unused_chunks() + self.app.dump_memory_profile( + 'after removing %s' % + self.repo.make_generation_spec(genid)) # Commit or unlock everything. self.repo.commit_client(client_name) @@ -120,15 +129,6 @@ class ForgetPlugin(obnamlib.ObnamPlugin): keepids = set(genid for genid, dt in keeplist) return [genid for genid, dt in genlist if genid not in keepids] - def remove_generations(self, removeids): - self.app.ts['gens'] = removeids - for genid in removeids: - self.app.ts['gen'] = genid - self.remove(genid) - self.app.dump_memory_profile( - 'after removing %s' % - self.repo.make_generation_spec(genid)) - def remove(self, genid): if self.app.settings['pretend']: self.app.ts.notify( |