Patchwork [2,of,2] context: move evolution functions from changectx to basectx

login
register
mail settings
Submitter Sean Farley
Date Sept. 18, 2013, 5:45 p.m.
Message ID <1ad8745e68f474fe2389.1379526306@laptop.local>
Download mbox | patch
Permalink /patch/2516/
State Accepted
Commit e61c6138fa33ddc5127829481f863012405e58a5
Headers show

Comments

Sean Farley - Sept. 18, 2013, 5:45 p.m.
# HG changeset patch
# User Sean Farley <sean.michael.farley@gmail.com>
# Date 1379478897 18000
#      Tue Sep 17 23:34:57 2013 -0500
# Node ID 1ad8745e68f474fe2389713d35ee9226f0718ae4
# Parent  8d2673f1a09470805ff366586254c689f809254f
context: move evolution functions from changectx to basectx

This is just a code move and corrects an overlook from my previous patch series
that assumed only a changectx would want this functionality.

Patch

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -78,10 +78,57 @@ 
     def phasestr(self):
         return phases.phasenames[self.phase()]
     def mutable(self):
         return self.phase() > phases.public
 
+    def obsolete(self):
+        """True if the changeset is obsolete"""
+        return self.rev() in obsmod.getrevs(self._repo, 'obsolete')
+
+    def extinct(self):
+        """True if the changeset is extinct"""
+        return self.rev() in obsmod.getrevs(self._repo, 'extinct')
+
+    def unstable(self):
+        """True if the changeset is not obsolete but it's ancestor are"""
+        return self.rev() in obsmod.getrevs(self._repo, 'unstable')
+
+    def bumped(self):
+        """True if the changeset try to be a successor of a public changeset
+
+        Only non-public and non-obsolete changesets may be bumped.
+        """
+        return self.rev() in obsmod.getrevs(self._repo, 'bumped')
+
+    def divergent(self):
+        """Is a successors of a changeset with multiple possible successors set
+
+        Only non-public and non-obsolete changesets may be divergent.
+        """
+        return self.rev() in obsmod.getrevs(self._repo, 'divergent')
+
+    def troubled(self):
+        """True if the changeset is either unstable, bumped or divergent"""
+        return self.unstable() or self.bumped() or self.divergent()
+
+    def troubles(self):
+        """return the list of troubles affecting this changesets.
+
+        Troubles are returned as strings. possible values are:
+        - unstable,
+        - bumped,
+        - divergent.
+        """
+        troubles = []
+        if self.unstable():
+            troubles.append('unstable')
+        if self.bumped():
+            troubles.append('bumped')
+        if self.divergent():
+            troubles.append('divergent')
+        return troubles
+
     def parents(self):
         """return contexts for each parent changeset"""
         return self._parents
 
     def p1(self):
@@ -320,57 +367,10 @@ 
 
     def descendants(self):
         for d in self._repo.changelog.descendants([self._rev]):
             yield changectx(self._repo, d)
 
-    def obsolete(self):
-        """True if the changeset is obsolete"""
-        return self.rev() in obsmod.getrevs(self._repo, 'obsolete')
-
-    def extinct(self):
-        """True if the changeset is extinct"""
-        return self.rev() in obsmod.getrevs(self._repo, 'extinct')
-
-    def unstable(self):
-        """True if the changeset is not obsolete but it's ancestor are"""
-        return self.rev() in obsmod.getrevs(self._repo, 'unstable')
-
-    def bumped(self):
-        """True if the changeset try to be a successor of a public changeset
-
-        Only non-public and non-obsolete changesets may be bumped.
-        """
-        return self.rev() in obsmod.getrevs(self._repo, 'bumped')
-
-    def divergent(self):
-        """Is a successors of a changeset with multiple possible successors set
-
-        Only non-public and non-obsolete changesets may be divergent.
-        """
-        return self.rev() in obsmod.getrevs(self._repo, 'divergent')
-
-    def troubled(self):
-        """True if the changeset is either unstable, bumped or divergent"""
-        return self.unstable() or self.bumped() or self.divergent()
-
-    def troubles(self):
-        """return the list of troubles affecting this changesets.
-
-        Troubles are returned as strings. possible values are:
-        - unstable,
-        - bumped,
-        - divergent.
-        """
-        troubles = []
-        if self.unstable():
-            troubles.append('unstable')
-        if self.bumped():
-            troubles.append('bumped')
-        if self.divergent():
-            troubles.append('divergent')
-        return troubles
-
     def filectx(self, path, fileid=None, filelog=None):
         """get a file context from this changeset"""
         if fileid is None:
             fileid = self.filenode(path)
         return filectx(self._repo, path, fileid=fileid,
@@ -1187,12 +1187,12 @@ 
                 self._repo.dirstate.copy(source, dest)
             finally:
                 wlock.release()
 
 class committablefilectx(basefilectx):
-    """A committablefilectx provides common functionality for a file context that
-    wants the ability to commit, e.g. workingfilectx or memfilectx."""
+    """A committablefilectx provides common functionality for a file context
+    that wants the ability to commit, e.g. workingfilectx or memfilectx."""
     def __init__(self, repo, path, filelog=None, ctx=None):
         self._repo = repo
         self._path = path
         self._changeid = None
         self._filerev = self._filenode = None