changeset 11262:55226ceb0b2a

Merge with i18n
author Matt Mackall <mpm@selenic.com>
date Tue, 01 Jun 2010 10:54:57 -0500
parents 94b7b3a1ae1b (diff) d3ffbeae8a5a (current diff)
children 1dd69d159e5c
files
diffstat 3 files changed, 38 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/keyword.py	Tue Jun 01 12:25:43 2010 -0300
+++ b/hgext/keyword.py	Tue Jun 01 10:54:57 2010 -0500
@@ -194,7 +194,7 @@
         '''Overwrites selected files expanding/shrinking keywords.'''
         ctx = self.repo[node]
         mf = ctx.manifest()
-        if node is not None:     # commit, record
+        if self.record:
             candidates = [f for f in ctx.files() if f in mf]
         candidates = [f for f in candidates if self.iskwfile(f, ctx.flags)]
         if candidates:
@@ -209,7 +209,7 @@
                 if util.binary(data):
                     continue
                 if expand:
-                    if node is None:
+                    if node is None: # kwexpand/kwshrink
                         ctx = self.repo.filectx(f, fileid=mf[f]).changectx()
                     data, found = self.substitute(data, f, ctx,
                                                   self.re_kw.subn)
@@ -220,6 +220,8 @@
                     self.repo.wwrite(f, data, mf.flags(f))
                     if node is None:
                         self.repo.dirstate.normal(f)
+                    elif self.record:
+                        self.repo.dirstate.normallookup(f)
             self.restrict = False
 
     def shrinktext(self, text):
@@ -497,7 +499,7 @@
             n = super(kwrepo, self).commitctx(ctx, error)
             # no lock needed, only called from repo.commit() which already locks
             if not kwt.record:
-                kwt.overwrite(n, True, None)
+                kwt.overwrite(n, True, sorted(ctx.added() + ctx.modified()))
             return n
 
     # monkeypatches
--- a/tests/test-keyword	Tue Jun 01 12:25:43 2010 -0300
+++ b/tests/test-keyword	Tue Jun 01 10:54:57 2010 -0500
@@ -142,7 +142,7 @@
 echo % compare changenodes in a c
 cat a c
 
-echo % record
+echo % record chunk
 python -c \
 'l=open("a").readlines();l.insert(1,"foo\n");l.append("bar\n");open("a","w").writelines(l);'
 hg record -d '1 10' -m rectest<<EOF
@@ -157,6 +157,19 @@
 cat a
 hg diff | grep -v 'b/a'
 hg rollback
+
+echo % record file
+echo foo > msg
+# do not use "hg record -m" here!
+hg record -l msg -d '1 11'<<EOF
+y
+y
+y
+EOF
+echo % a should be clean
+hg status -A a
+rm msg
+hg rollback
 hg update -C
 
 echo % init --mq
--- a/tests/test-keyword.out	Tue Jun 01 12:25:43 2010 -0300
+++ b/tests/test-keyword.out	Tue Jun 01 10:54:57 2010 -0500
@@ -132,7 +132,7 @@
 xxx $
 $Id: c,v 40a904bbbe4c 1970/01/01 00:00:01 user $
 tests for different changenodes
-% record
+% record chunk
 diff --git a/a b/a
 2 hunks, 2 lines changed
 examine changes to 'a'? [Ynsfdaq?] 
@@ -164,6 +164,24 @@
  xxx $
 +bar
 rolling back to revision 2 (undo commit)
+% record file
+diff --git a/a b/a
+2 hunks, 2 lines changed
+examine changes to 'a'? [Ynsfdaq?] 
+@@ -1,3 +1,4 @@
+ expand $Id$
++foo
+ do not process $Id:
+ xxx $
+record change 1/2 to 'a'? [Ynsfdaq?] 
+@@ -2,2 +3,3 @@
+ do not process $Id:
+ xxx $
++bar
+record change 2/2 to 'a'? [Ynsfdaq?] 
+% a should be clean
+C a
+rolling back to revision 2 (undo commit)
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % init --mq
 % qimport