hgext/remotenames.py
changeset 36956 b710fdebd0db
parent 36921 32f9b7e3f056
child 37068 aa97e06a1912
equal deleted inserted replaced
36955:f21798a6bc20 36956:b710fdebd0db
    20   Boolean value to enable or disable showing of remotebranches
    20   Boolean value to enable or disable showing of remotebranches
    21 """
    21 """
    22 
    22 
    23 from __future__ import absolute_import
    23 from __future__ import absolute_import
    24 
    24 
    25 import collections
       
    26 
       
    27 from mercurial.i18n import _
    25 from mercurial.i18n import _
    28 
    26 
    29 from mercurial.node import (
    27 from mercurial.node import (
    30     bin,
    28     bin,
    31 )
    29 )
    32 from mercurial import (
    30 from mercurial import (
    33     logexchange,
    31     logexchange,
    34     namespaces,
    32     namespaces,
       
    33     pycompat,
    35     registrar,
    34     registrar,
    36     revsetlang,
    35     revsetlang,
    37     smartset,
    36     smartset,
    38     templateutil,
    37     templateutil,
    39 )
    38 )
       
    39 
       
    40 if pycompat.ispy3:
       
    41     import collections.abc
       
    42     mutablemapping = collections.abc.MutableMapping
       
    43 else:
       
    44     import collections
       
    45     mutablemapping = collections.MutableMapping
    40 
    46 
    41 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
    47 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
    42 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
    48 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
    43 # be specifying the version(s) of Mercurial they are tested with, or
    49 # be specifying the version(s) of Mercurial they are tested with, or
    44 # leave the attribute unspecified.
    50 # leave the attribute unspecified.
    54 )
    60 )
    55 configitem('remotenames', 'branches',
    61 configitem('remotenames', 'branches',
    56     default=True,
    62     default=True,
    57 )
    63 )
    58 
    64 
    59 class lazyremotenamedict(collections.MutableMapping):
    65 class lazyremotenamedict(mutablemapping):
    60     """
    66     """
    61     Read-only dict-like Class to lazily resolve remotename entries
    67     Read-only dict-like Class to lazily resolve remotename entries
    62 
    68 
    63     We are doing that because remotenames startup was slow.
    69     We are doing that because remotenames startup was slow.
    64     We lazily read the remotenames file once to figure out the potential entries
    70     We lazily read the remotenames file once to figure out the potential entries