From ba31d662fe52921b8035f4c5d7895d780d66a481 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Sun, 29 Jan 2012 12:33:13 -0500 Subject: [PATCH] codereview: die if initialized twice If this happens, something is misconfigured. If we don't test for this explicitly, MatchAt ends up calling itself recursively forever. R=golang-dev, r CC=golang-dev https://golang.org/cl/5576066 --- lib/codereview/codereview.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/codereview/codereview.py b/lib/codereview/codereview.py index 5730bc2a8e6..1957d7cbb77 100644 --- a/lib/codereview/codereview.py +++ b/lib/codereview/codereview.py @@ -2171,10 +2171,21 @@ def norollback(*pats, **opts): """(disabled when using this extension)""" raise hg_util.Abort("codereview extension enabled; use undo instead of rollback") +codereview_init = False + def reposetup(ui, repo): global codereview_disabled global defaultcc + global codereview_init + if codereview_init: + raise hg_util.Abort("codereview extension initialized twice") + codereview_init = True + + remote = ui.config("paths", "default", "") + if remote.find("://") < 0: + raise hg_util.Abort("codereview: default path '%s' is not a URL" % (remote,)) + # Read repository-specific options from lib/codereview/codereview.cfg or codereview.cfg. root = '' try: