mercurial/localrepo.py
changeset 43106 d783f945a701
parent 43104 74802979dd9d
child 43117 8ff1ecfadcd1
equal deleted inserted replaced
43105:649d3ac37a12 43106:d783f945a701
  1687         if self.changelog.filteredrevs:
  1687         if self.changelog.filteredrevs:
  1688             tags, tt = self._findtags()
  1688             tags, tt = self._findtags()
  1689         else:
  1689         else:
  1690             tags = self._tagscache.tags
  1690             tags = self._tagscache.tags
  1691         rev = self.changelog.rev
  1691         rev = self.changelog.rev
  1692         for k, v in tags.iteritems():
  1692         for k, v in pycompat.iteritems(tags):
  1693             try:
  1693             try:
  1694                 # ignore tags to unknown nodes
  1694                 # ignore tags to unknown nodes
  1695                 rev(v)
  1695                 rev(v)
  1696                 t[k] = v
  1696                 t[k] = v
  1697             except (error.LookupError, ValueError):
  1697             except (error.LookupError, ValueError):
  1722         # Build the return dicts.  Have to re-encode tag names because
  1722         # Build the return dicts.  Have to re-encode tag names because
  1723         # the tags module always uses UTF-8 (in order not to lose info
  1723         # the tags module always uses UTF-8 (in order not to lose info
  1724         # writing to the cache), but the rest of Mercurial wants them in
  1724         # writing to the cache), but the rest of Mercurial wants them in
  1725         # local encoding.
  1725         # local encoding.
  1726         tags = {}
  1726         tags = {}
  1727         for (name, (node, hist)) in alltags.iteritems():
  1727         for (name, (node, hist)) in pycompat.iteritems(alltags):
  1728             if node != nullid:
  1728             if node != nullid:
  1729                 tags[encoding.tolocal(name)] = node
  1729                 tags[encoding.tolocal(name)] = node
  1730         tags[b'tip'] = self.changelog.tip()
  1730         tags[b'tip'] = self.changelog.tip()
  1731         tagtypes = dict(
  1731         tagtypes = dict(
  1732             [
  1732             [
  1733                 (encoding.tolocal(name), value)
  1733                 (encoding.tolocal(name), value)
  1734                 for (name, value) in tagtypes.iteritems()
  1734                 for (name, value) in pycompat.iteritems(tagtypes)
  1735             ]
  1735             ]
  1736         )
  1736         )
  1737         return (tags, tagtypes)
  1737         return (tags, tagtypes)
  1738 
  1738 
  1739     def tagtype(self, tagname):
  1739     def tagtype(self, tagname):
  1749 
  1749 
  1750     def tagslist(self):
  1750     def tagslist(self):
  1751         '''return a list of tags ordered by revision'''
  1751         '''return a list of tags ordered by revision'''
  1752         if not self._tagscache.tagslist:
  1752         if not self._tagscache.tagslist:
  1753             l = []
  1753             l = []
  1754             for t, n in self.tags().iteritems():
  1754             for t, n in pycompat.iteritems(self.tags()):
  1755                 l.append((self.changelog.rev(n), t, n))
  1755                 l.append((self.changelog.rev(n), t, n))
  1756             self._tagscache.tagslist = [(t, n) for r, t, n in sorted(l)]
  1756             self._tagscache.tagslist = [(t, n) for r, t, n in sorted(l)]
  1757 
  1757 
  1758         return self._tagscache.tagslist
  1758         return self._tagscache.tagslist
  1759 
  1759 
  1760     def nodetags(self, node):
  1760     def nodetags(self, node):
  1761         '''return the tags associated with a node'''
  1761         '''return the tags associated with a node'''
  1762         if not self._tagscache.nodetagscache:
  1762         if not self._tagscache.nodetagscache:
  1763             nodetagscache = {}
  1763             nodetagscache = {}
  1764             for t, n in self._tagscache.tags.iteritems():
  1764             for t, n in pycompat.iteritems(self._tagscache.tags):
  1765                 nodetagscache.setdefault(n, []).append(t)
  1765                 nodetagscache.setdefault(n, []).append(t)
  1766             for tags in pycompat.itervalues(nodetagscache):
  1766             for tags in pycompat.itervalues(nodetagscache):
  1767                 tags.sort()
  1767                 tags.sort()
  1768             self._tagscache.nodetagscache = nodetagscache
  1768             self._tagscache.nodetagscache = nodetagscache
  1769         return self._tagscache.nodetagscache.get(node, [])
  1769         return self._tagscache.nodetagscache.get(node, [])
  1884                 if cmd == b'!':
  1884                 if cmd == b'!':
  1885                     continue
  1885                     continue
  1886                 mf = matchmod.match(self.root, b'', [pat])
  1886                 mf = matchmod.match(self.root, b'', [pat])
  1887                 fn = None
  1887                 fn = None
  1888                 params = cmd
  1888                 params = cmd
  1889                 for name, filterfn in self._datafilters.iteritems():
  1889                 for name, filterfn in pycompat.iteritems(self._datafilters):
  1890                     if cmd.startswith(name):
  1890                     if cmd.startswith(name):
  1891                         fn = filterfn
  1891                         fn = filterfn
  1892                         params = cmd[len(name) :].lstrip()
  1892                         params = cmd[len(name) :].lstrip()
  1893                         break
  1893                         break
  1894                 if not fn:
  1894                 if not fn: