# HG changeset patch # User Boris Feld <boris.f...@octobus.net> # Date 1508322983 -7200 # Wed Oct 18 12:36:23 2017 +0200 # Node ID e4c6f469eb215986ae8b1d5624c5867501462a58 # Parent a3110a4c8aa98ebd9fc26702eb81b9366edf7335 # EXP-Topic config.register.fixup # Available At https://bitbucket.org/octobus/mercurial-devel/ # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r e4c6f469eb21 configitems: document the choice of using 'match' instead of 'search'
diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -74,6 +74,17 @@ # search for a matching generic item generics = sorted(self._generics, key=(lambda x: (x.priority, x.name))) for item in generics: + # we use 'match' instead of 'search' to make the matching simpler + # for people unfamiliar with regular expression. Having the match + # rooted to the start of the string will produce less surprising + # result for user writing simple regex for sub-attribute. + # + # For example using "color\..*" match produces an unsurprising + # result, while using search could suddenly match apparently + # unrelated configuration that happens to contains "color." + # anywhere. This is a tradeoff where we favor requiring ".*" on + # some match to avoid the need to prefix most pattern with "^". + # The "^" seems more error prone. if item._re.match(key): return item _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel