[PATCH] keyword: detect restricted commands thru variable

Christian Ebert blacktrash at gmx.net
Sat Jan 26 07:08:14 CST 2008


# HG changeset patch
# User Christian Ebert <blacktrash at gmx.net>
# Date 1201352676 0
# Node ID 1db47eeeeda31e3290db53743cc694a2dfa5fc06
# Parent  e7f1be4bf40a71d85dfda76aa26445dfe9562349
keyword: detect restricted commands thru variable

diff --git a/hgext/keyword.py b/hgext/keyword.py
--- a/hgext/keyword.py
+++ b/hgext/keyword.py
@@ -86,16 +86,14 @@
 
 commands.optionalrepo += ' kwdemo'
 
+# hg commands that trigger expansion only when writing to working dir,
+# not when reading filelog, and unexpand when reading from working dir
+restricted = ('diff1', 'record',
+              'qfold', 'qimport', 'qnew', 'qpush', 'qrefresh', 'qrecord')
+
 def utcdate(date):
     '''Returns hgdate in cvs-like UTC format.'''
     return time.strftime('%Y/%m/%d %H:%M:%S', time.gmtime(date[0]))
-
-def _kwrestrict(cmd):
-    '''Returns True if cmd should trigger restricted expansion.
-    Keywords will only expanded when writing to working dir.
-    Crucial for mq as expanded keywords should not make it into patches.'''
-    return cmd in ('diff1', 'record',
-                   'qfold', 'qimport', 'qnew', 'qpush', 'qrefresh', 'qrecord')
 
 
 _kwtemplater = None
@@ -157,7 +155,7 @@
 
     def expand(self, node, data):
         '''Returns data with keywords expanded.'''
-        if util.binary(data) or _kwrestrict(self.hgcmd):
+        if util.binary(data) or self.hgcmd in restricted:
             return data
         return self.substitute(node, data, self.re_kw.sub)
 
@@ -451,7 +449,7 @@
 
         def wread(self, filename):
             data = super(kwrepo, self).wread(filename)
-            if _kwrestrict(hgcmd) and _kwtemplater.matcher(filename):
+            if hgcmd in restricted and _kwtemplater.matcher(filename):
                 return _kwtemplater.shrink(data)
             return data
 



More information about the Mercurial-devel mailing list