tags: implement persistent tag caching (
issue548).
- rename findglobaltags() to findglobaltags1() (so the "no cache"
implementation is still there if we need it)
- add findglobaltags2() and make findglobaltags() an alias for it
(disabling tag caching is a one-line patch)
- factor out tagcache class with methods readcache() and writecache();
the expensive part of tag finding (iterate over heads and find
.hgtags filenode) is now in tagcache.readcache()
localrepo: add destroyed() method for strip/rollback to use (
issue548).
Factor tags module out of localrepo (
issue548).
Currently only handles reading tags, and will soon grow support for
tag caching. Could eventually deal with updating tags too.
localrepo: factor updatetags() out of readtags() (
issue548).
localrepo: improve readability of _findtags(), readtags() (
issue548).
- rename many local variables
- add some comments
- refactor call to line.split() (catch ValueError rather
than checking length of return value: one less local variable)
localrepo: rename in-memory tag cache instance attributes (
issue548).
- self.tagscache to self._tags
- self._tagstypecache to self._tagtypes
- this is for consistency, readability, privacy, and to subtly hint
that "caching" is something else