diff hgext/keyword.py @ 5885:53be157543d4

keyword: avoid extra diffs when not comparing against working dir When diffing against specified revisions expanded keywords only get in the way. Update test output.
author Christian Ebert <blacktrash@gmx.net>
date Tue, 15 Jan 2008 14:39:53 +0100
parents a139f141dcae
children d0576d065993
line wrap: on
line diff
--- a/hgext/keyword.py	Tue Jan 15 13:58:22 2008 +0100
+++ b/hgext/keyword.py	Tue Jan 15 14:39:53 2008 +0100
@@ -94,7 +94,8 @@
     '''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 ('qimport', 'qnew', 'qpush', 'qrefresh', 'record', 'qrecord')
+    return cmd in ('diff1', 
+                   'qimport', 'qnew', 'qpush', 'qrefresh', 'record', 'qrecord')
 
 
 _kwtemplater = None
@@ -419,6 +420,15 @@
     if hgcmd in nokwcommands:
         return
 
+    if hgcmd == 'diff':
+        # only expand if comparing against working dir
+        node1, node2 = cmdutil.revpair(repo, cmdopts.get('rev'))
+        if node2 is not None:
+            return
+        # shrink if rev is not current node
+        if node1 is not None and node1 != repo.changectx().node():
+            hgcmd = 'diff1'
+
     inc, exc = [], ['.hgtags']
     for pat, opt in ui.configitems('keyword'):
         if opt != 'ignore':