[PATCH 2 of 2 topic-ext] init: guard _namemap with repo.topics (issue5351)
timeless
timeless at fmr.im
Fri Aug 26 12:59:39 EDT 2016
# HG changeset patch
# User timeless at gmail.com
# Date 1472230665 0
# Fri Aug 26 16:57:45 2016 +0000
# Node ID 942a3b3b41b6179e3723a0b048ee2494d8252a7d
# Parent 81def069bd64c516610e507279070cef5ca72d7f
init: guard _namemap with repo.topics (issue5351)
This prevents reading extra data on all repo commits
when there is no topic for a given name.
_namemap is called a lot, and it is often called for commit
shas -- which should pretty much never be names of topics...
diff -r 81def069bd64 -r 942a3b3b41b6 hgext3rd/topic/__init__.py
--- a/hgext3rd/topic/__init__.py Fri Aug 26 16:52:02 2016 +0000
+++ b/hgext3rd/topic/__init__.py Fri Aug 26 16:57:45 2016 +0000
@@ -79,6 +79,8 @@
msg = _('cannot resolve "%s": topic "%s" has only %d changesets')
raise error.Abort(msg % (name, topic, len(revs)))
return [repo[r].node()]
+ if not name in repo.topics:
+ return []
return [ctx.node() for ctx in
repo.set('not public() and extra(topic, %s)', name)]
More information about the Mercurial-devel
mailing list