# HG changeset patch # User Gregory Szorc # Date 2015-04-14 16:54:16 # Node ID 02a5618e2fbf29bca3b9045379a3666e441f2569 # Parent 774ee98001461ee9c61e0575f8778539712f6938 revset: don't import discovery at module level discovery.py imports a lot of the world. Pierre-Yves told me to move it to a function-level import to avoid an import cycle in a future patch. diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -6,7 +6,7 @@ # GNU General Public License version 2 or any later version. import re -import parser, util, error, discovery, hbisect, phases +import parser, util, error, hbisect, phases import node import heapq import match as matchmod @@ -1372,7 +1372,9 @@ def outgoing(repo, subset, x): Changesets not found in the specified destination repository, or the default push location. """ - import hg # avoid start-up nasties + # Avoid cycles. + import discovery + import hg # i18n: "outgoing" is a keyword l = getargs(x, 0, 1, _("outgoing takes one or no arguments")) # i18n: "outgoing" is a keyword diff --git a/tests/test-module-imports.t b/tests/test-module-imports.t --- a/tests/test-module-imports.t +++ b/tests/test-module-imports.t @@ -32,7 +32,7 @@ these may expose other cycles. relative: error, merge, util mercurial/revset.py mixed imports stdlib: parser - relative: discovery, error, hbisect, phases, util + relative: error, hbisect, phases, util mercurial/templater.py mixed imports stdlib: parser relative: config, error, templatefilters, templatekw, util