Avoid extra diffs when not comparing against working dir
authorChristian Ebert <blacktrash@gmx.net>
Wed, 16 Jan 2008 11:22:16 +0100
changeset 341 5ef2b11df3d3
parent 340 9e9f6cbcf20b
child 342 abf7ccaf0788
Avoid extra diffs when not comparing against working dir When diffing against specified revisions expanded keywords only get in the way. Update test output.
hgkw/keyword.py
tests/test-keyword.out
--- a/hgkw/keyword.py	Tue Jan 15 13:19:23 2008 +0100
+++ b/hgkw/keyword.py	Wed Jan 16 11:22:16 2008 +0100
@@ -96,7 +96,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
@@ -421,6 +422,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':
--- a/tests/test-keyword.out	Tue Jan 15 13:19:23 2008 +0100
+++ b/tests/test-keyword.out	Wed Jan 16 11:22:16 2008 +0100
@@ -188,7 +188,7 @@
 diff -r f782df5f9602 c
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 @@ -0,0 +1,3 @@
-+expand $Id: c,v 0ba462c0f077 1970/01/01 00:00:01 user $
++expand $Id$
 +do not process $Id:
 +xxx $
 % rollback