﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	branch	changelog	apichanges	internalchanges
13050	Quickjump dropdown overflows due to Mercurial tags	Peter Suter		"* [source:trunk/tracopt/versioncontrol/svn/svn_fs.py@16609#L479 SVN get_quickjump_entries] just lists each tag path.
* [source:trunk/tracopt/versioncontrol/git/git_fs.py@16411#L585 Git  get_quickjump_entries] just lists each tag name.
* [source:mercurial-plugin/tracext/hg/backend.py@59:639-703,724-730#L682 Mercurial get_quickjump_entries] collects all tags of a revision and joins them together.

When one Mercurial revision has many tags this leads to a huge, overflowing quickjump menu. Can we just drop this?

{{{#!patch
diff -r a821499e945c tracext/hg/backend.py
--- a/tracext/hg/backend.py	Mon Jun 25 19:38:48 2018 +0200
+++ b/tracext/hg/backend.py	Mon Jun 25 22:29:56 2018 +0200
@@ -689,22 +689,11 @@
                 closed_branches[ctx] = b
             else:
                 branches[ctx] = b
-        # map node to tag names
-        tags = {}
-        tagslist = self.repo.tagslist()
-        for tag, n in tagslist:
-            tags.setdefault(n, []).append(self.to_u(tag))
-        def taginfo(ctx):
-            t = tags.get(ctx.node())
-            if t:
-                return ' (%s)' % ', '.join(t)
-            else:
-                return ''
         def quickjump_entries(ctx_name_pairs):
             for ctx, name in sorted(ctx_name_pairs, reverse=True,
                                     key=lambda (ctx, name): ctx.rev()):
                 nodestr = self._display(ctx)
-                yield ((name or nodestr) + taginfo(ctx), '/', nodestr)
+                yield ((name or nodestr), '/', nodestr)
         # bookmarks
         bookmarks = [(self.changectx(b), b)
                      for b in get_repo_bookmarks(self.repo)]
@@ -721,9 +710,9 @@
         for e in quickjump_entries(interesting_heads):
             yield _(""Extra heads""), e[0], e[1], e[2]
         # tags
-        for t, n in reversed(tagslist):
+        for t, n in reversed(self.repo.tagslist()):
             try:
-                yield (_(""Tags""), ', '.join(tags[n]), '/',
+                yield (_(""Tags""), self.to_u(t), '/',
                        self._display(self.repo[n]))
             except (KeyError, RepoLookupError):
                 pass
}}}

Is it important to see which branch has the `(tip)` tag?"	defect	new	normal	plugin - mercurial	plugin/mercurial		normal							
