Patchwork [4,of,5] chgserver: add a structure for confighash and mtimehash

login
register
mail settings
Submitter Jun Wu
Date Feb. 24, 2016, 10:30 p.m.
Message ID <a987a1eaf022e94dc62e.1456353015@x1c>
Download mbox | patch
Permalink /patch/13377/
State Superseded
Commit cdc6319f6a7d620d4157065bdf7dfe222b662f4b
Delegated to: Yuya Nishihara
Headers show

Comments

Jun Wu - Feb. 24, 2016, 10:30 p.m.
# HG changeset patch
# User Jun Wu <quark@fb.com>
# Date 1456346747 0
#      Wed Feb 24 20:45:47 2016 +0000
# Node ID a987a1eaf022e94dc62eba75e05c6e04b1e03714
# Parent  66e1c30b8f82615f6154d7ca59dc9b30c230c257
chgserver: add a structure for confighash and mtimehash

confighash and mtimehash are often used together. This patch adds a simple
structure called hashstate to store them. hashstate also has a handly method
called fromui to calculate the hashes from a ui object.

Patch

diff --git a/hgext/chgserver.py b/hgext/chgserver.py
--- a/hgext/chgserver.py
+++ b/hgext/chgserver.py
@@ -133,6 +133,22 @@ 
                 raise
     return _hashlist(map(trystat, paths))[:12]
 
+class hashstate(object):
+    """a structure storing confighash, mtimehash, paths used for mtimehash"""
+    def __init__(self, confighash, mtimehash, mtimepaths):
+        self.confighash = confighash
+        self.mtimehash = mtimehash
+        self.mtimepaths = mtimepaths
+
+    @staticmethod
+    def fromui(ui, mtimepaths=None):
+        if mtimepaths is None:
+            mtimepaths = _getmtimepaths(ui)
+        confighash = _confighash(ui)
+        mtimehash = _mtimehash(mtimepaths)
+        _log('confighash = %s mtimehash = %s\n' % (confighash, mtimehash))
+        return hashstate(confighash, mtimehash, mtimepaths)
+
 # copied from hgext/pager.py:uisetup()
 def _setuppagercmd(ui, options, cmd):
     if not ui.formatted():