diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py
index 3449391265796eb2a5aef661d632c0c0b72f111b_bWVyY3VyaWFsL3RlbXBsYXRla3cucHk=..0870bb93573c876ee263161663763393365ea195_bWVyY3VyaWFsL3RlbXBsYXRla3cucHk= 100644
--- a/mercurial/templatekw.py
+++ b/mercurial/templatekw.py
@@ -382,6 +382,13 @@
     names = ns.names(repo, ctx.node())
     return showlist(ns.templatename, names, plural=namespace, **args)
 
+# don't remove "showtags" definition, even though namespaces will put
+# a helper function for "tags" keyword into "keywords" map automatically,
+# because online help text is built without namespaces initialization
+def showtags(**args):
+    """:tags: List of strings. Any tags associated with the changeset."""
+    return shownames('tags', **args)
+
 # keywords are callables like:
 # fn(repo, ctx, templ, cache, revcache, **args)
 # with:
@@ -420,6 +427,7 @@
     'phaseidx': showphaseidx,
     'rev': showrev,
     'subrepos': showsubrepos,
+    'tags': showtags,
 }
 
 def _showparents(**args):