-
Committer:
Vincent Ladeuil
-
Date:
2012-01-05 14:26:58 UTC
-
mto:
This revision was merged to the branch mainline in
revision
6468.
-
Revision ID:
v.ladeuil+lp@free.fr-20120105142658-vek3v6pzlxb751s2
Tests passing for a first rough version of a cached branch config store. The changes here are too invasive and several parallel proposals have been made.
@only_raises is evil and gave a hard time since any exception during
save_changes() was swallowed.
Possible improvements:
- add some needs_write_lock decorators to crucial
methods (_set_config_location ?) but keep locking the branch at higher levels
- decorate branch.unlock to call stack.save if last_lock() it True
outside of @only_raises scope (evil decorator)
- add @needs_write_lock to stack.set and stack.remove (will probably get
rid of most testing issues) we probably need a specialized decorator
that can relay to the store and from there to the branch or whatever is
needed. This will also helps bzr config to get it right. The
get_mutable_section trick should not be needed anymore either.
- decorate branch.unlock to call stack.save if last_lock() it True outside
of @only_raises scope (evil decorator)