changeset 26977:bd19561b98d9

filectx: allow custom comparators We're going to introduce other sorts of filectxes very soon, and we'd like the cmp method to function properly (i.e. commutatively) for them. The only way to make that happen is for this cmp method to call into that specialized one if that defines a custom comparator.
author Siddharth Agarwal <sid0@fb.com>
date Fri, 13 Nov 2015 22:37:51 -0800
parents c48fee950ce4
children 9b9d4bcc915e
files mercurial/context.py
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/context.py	Fri Nov 13 23:01:36 2015 -0800
+++ b/mercurial/context.py	Fri Nov 13 22:37:51 2015 -0800
@@ -747,11 +747,15 @@
     def islink(self):
         return 'l' in self.flags()
 
+    _customcmp = False
     def cmp(self, fctx):
         """compare with other file context
 
         returns True if different than fctx.
         """
+        if fctx._customcmp:
+            return fctx.cmp(self)
+
         if (fctx._filerev is None
             and (self._repo._encodefilterpats
                  # if file data starts with '\1\n', empty metadata block is