changeset 33726:ab0c55c2ad9a

context: rename troubles into instabilities Rename troubles context method into instabilities. Copy the old troubles method and add a deprecation warning. This way extensions calling troubles will see the deprecation warning but will not break due to new return values. The renaming is done according to https://www.mercurial-scm.org/wiki/CEDVocabulary. Differential Revision: https://phab.mercurial-scm.org/D238
author Boris Feld <boris.feld@octobus.net>
date Wed, 02 Aug 2017 18:34:39 +0200
parents 86ea201eaeb9
children f163edb45c47
files mercurial/cmdutil.py mercurial/commands.py mercurial/context.py mercurial/exchange.py mercurial/templatekw.py
diffstat 5 files changed, 35 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/cmdutil.py	Tue Aug 08 17:25:38 2017 -0700
+++ b/mercurial/cmdutil.py	Wed Aug 02 18:34:39 2017 +0200
@@ -1466,8 +1466,8 @@
         labels.append('changeset.obsolete')
     if ctx.troubled():
         labels.append('changeset.troubled')
-        for trouble in ctx.troubles():
-            labels.append('trouble.%s' % trouble)
+        for instability in ctx.instabilities():
+            labels.append('trouble.%s' % instability)
     return ' '.join(labels)
 
 class changeset_printer(object):
@@ -1579,7 +1579,8 @@
 
         if ctx.troubled():
             # i18n: column positioning for "hg log"
-            self.ui.write(_("instability: %s\n") % ', '.join(ctx.troubles()),
+            instabilities = ctx.instabilities()
+            self.ui.write(_("instability: %s\n") % ', '.join(instabilities),
                           label='log.trouble')
 
         self._exthook(ctx)
--- a/mercurial/commands.py	Tue Aug 08 17:25:38 2017 -0700
+++ b/mercurial/commands.py	Wed Aug 02 18:34:39 2017 +0200
@@ -4850,9 +4850,10 @@
         if p.obsolete():
             ui.write(_(' (obsolete)'))
         if p.troubled():
+            instabilities = (ui.label(instability, 'trouble.%s' % instability)
+                             for instability in p.instabilities())
             ui.write(' ('
-                     + ', '.join(ui.label(trouble, 'trouble.%s' % trouble)
-                                 for trouble in p.troubles())
+                     + ', '.join(instabilities)
                      + ')')
         ui.write('\n')
         if p.description():
--- a/mercurial/context.py	Tue Aug 08 17:25:38 2017 -0700
+++ b/mercurial/context.py	Wed Aug 02 18:34:39 2017 +0200
@@ -226,21 +226,38 @@
         return self.unstable() or self.bumped() or self.divergent()
 
     def troubles(self):
-        """return the list of troubles affecting this changesets.
+        """Keep the old version around in order to avoid breaking extensions
+        about different return values.
+        """
+        msg = ("'context.troubles' is deprecated, "
+               "use 'context.instabilities'")
+        self._repo.ui.deprecwarn(msg, '4.4')
 
-        Troubles are returned as strings. possible values are:
+        troubles = []
+        if self.unstable():
+            troubles.append('orphan')
+        if self.bumped():
+            troubles.append('bumped')
+        if self.divergent():
+            troubles.append('divergent')
+        return troubles
+
+    def instabilities(self):
+        """return the list of instabilities affecting this changeset.
+
+        Instabilities are returned as strings. possible values are:
         - orphan,
         - phase-divergent,
         - content-divergent.
         """
-        troubles = []
+        instabilities = []
         if self.unstable():
-            troubles.append('orphan')
+            instabilities.append('orphan')
         if self.bumped():
-            troubles.append('phase-divergent')
+            instabilities.append('phase-divergent')
         if self.divergent():
-            troubles.append('content-divergent')
-        return troubles
+            instabilities.append('content-divergent')
+        return instabilities
 
     def parents(self):
         """return contexts for each parent changeset"""
--- a/mercurial/exchange.py	Tue Aug 08 17:25:38 2017 -0700
+++ b/mercurial/exchange.py	Wed Aug 02 18:34:39 2017 +0200
@@ -681,7 +681,9 @@
                 if ctx.obsolete():
                     raise error.Abort(mso % ctx)
                 elif ctx.troubled():
-                    raise error.Abort(mst[ctx.troubles()[0]] % ctx)
+                    # TODO print more than one instability in the abort
+                    # message
+                    raise error.Abort(mst[ctx.instabilities()[0]] % ctx)
 
         discovery.checkheads(pushop)
     return True
--- a/mercurial/templatekw.py	Tue Aug 08 17:25:38 2017 -0700
+++ b/mercurial/templatekw.py	Wed Aug 02 18:34:39 2017 +0200
@@ -783,7 +783,7 @@
     (EXPERIMENTAL)
     """
     args = pycompat.byteskwargs(args)
-    return showlist('trouble', args['ctx'].troubles(), args)
+    return showlist('trouble', args['ctx'].instabilities(), args)
 
 # tell hggettext to extract docstrings from these functions:
 i18nfunctions = keywords.values()