mercurial/obsolete.py
changeset 34864 fec79a3f250f
parent 34863 b1e3f609bf45
child 34902 cc977ec0b8b9
equal deleted inserted replaced
34863:b1e3f609bf45 34864:fec79a3f250f
    96 # Options for obsolescence
    96 # Options for obsolescence
    97 createmarkersopt = 'createmarkers'
    97 createmarkersopt = 'createmarkers'
    98 allowunstableopt = 'allowunstable'
    98 allowunstableopt = 'allowunstable'
    99 exchangeopt = 'exchange'
    99 exchangeopt = 'exchange'
   100 
   100 
       
   101 def _getoptionvalue(repo, option):
       
   102     """Returns True if the given repository has the given obsolete option
       
   103     enabled.
       
   104     """
       
   105     configkey = 'evolution.%s' % option
       
   106     newconfig = repo.ui.configbool('experimental', configkey)
       
   107 
       
   108     # Return the value only if defined
       
   109     if newconfig is not None:
       
   110         return newconfig
       
   111 
       
   112     # Fallback on generic option
       
   113     try:
       
   114         return repo.ui.configbool('experimental', 'evolution')
       
   115     except (error.ConfigError, AttributeError):
       
   116         # Fallback on old-fashion config
       
   117         # inconsistent config: experimental.evolution
       
   118         result = set(repo.ui.configlist('experimental', 'evolution'))
       
   119 
       
   120         if 'all' in result:
       
   121             return True
       
   122 
       
   123         # For migration purposes, temporarily return true if the config hasn't
       
   124         # been set but _enabled is true.
       
   125         if len(result) == 0 and _enabled:
       
   126             return True
       
   127 
       
   128         # Temporary hack for next check
       
   129         newconfig = repo.ui.config('experimental', 'evolution.createmarkers')
       
   130         if newconfig:
       
   131             result.add('createmarkers')
       
   132 
       
   133         return option in result
       
   134 
   101 def isenabled(repo, option):
   135 def isenabled(repo, option):
   102     """Returns True if the given repository has the given obsolete option
   136     """Returns True if the given repository has the given obsolete option
   103     enabled.
   137     enabled.
   104     """
   138     """
   105     result = set(repo.ui.configlist('experimental', 'evolution'))
   139     createmarkersvalue = _getoptionvalue(repo, createmarkersopt)
   106     if 'all' in result:
   140     unstabluevalue = _getoptionvalue(repo, allowunstableopt)
   107         return True
   141     exchangevalue = _getoptionvalue(repo, exchangeopt)
   108 
       
   109     # For migration purposes, temporarily return true if the config hasn't been
       
   110     # set but _enabled is true.
       
   111     if len(result) == 0 and _enabled:
       
   112         return True
       
   113 
   142 
   114     # createmarkers must be enabled if other options are enabled
   143     # createmarkers must be enabled if other options are enabled
   115     if ((allowunstableopt in result or exchangeopt in result) and
   144     if ((unstabluevalue or exchangevalue) and not createmarkersvalue):
   116         not createmarkersopt in result):
       
   117         raise error.Abort(_("'createmarkers' obsolete option must be enabled "
   145         raise error.Abort(_("'createmarkers' obsolete option must be enabled "
   118                            "if other obsolete options are enabled"))
   146                             "if other obsolete options are enabled"))
   119 
   147 
   120     return option in result
   148     return _getoptionvalue(repo, option)
   121 
   149 
   122 ### obsolescence marker flag
   150 ### obsolescence marker flag
   123 
   151 
   124 ## bumpedfix flag
   152 ## bumpedfix flag
   125 #
   153 #