[PATCH stable] keyword: fix regressions introduced in d87f3ff904ba (complete fix)

Christian Ebert blacktrash at gmx.net
Sun Oct 24 09:14:10 CDT 2010


# HG changeset patch
# User Christian Ebert <blacktrash at gmx.net>
# Date 1287929501 -3600
# Branch stable
# Node ID 9a663e16d9899c7dee01397481cb225f47f85cba
# Parent  61f48581d8effa72b2229f24a34ba9f9207f8aed
keyword: fix regressions introduced in d87f3ff904ba

- dirstate of overwritten files must be forced to normal
  with kwexpand/kwshrink, not commit.
- recorded files must be weeded before overwriting.
- add test cases.

diff --git a/hgext/keyword.py b/hgext/keyword.py
--- a/hgext/keyword.py
+++ b/hgext/keyword.py
@@ -205,11 +205,11 @@
 
     def overwrite(self, ctx, candidates, lookup, expand, rekw=False):
         '''Overwrites selected files expanding/shrinking keywords.'''
-        if self.restrict or lookup: # exclude kw_copy
+        if self.restrict or lookup or self.record: # exclude kw_copy
             candidates = self.iskwfile(candidates, ctx)
         if not candidates:
             return
-        commit = self.restrict and not lookup
+        kwcmd = self.restrict and lookup # kwexpand/kwshrink
         if self.restrict or expand and lookup:
             mf = ctx.manifest()
         fctx = ctx
@@ -234,7 +234,7 @@
             if found:
                 self.ui.note(msg % f)
                 self.repo.wwrite(f, data, ctx.flags(f))
-                if commit:
+                if kwcmd:
                     self.repo.dirstate.normal(f)
                 elif self.record:
                     self.repo.dirstate.normallookup(f)
diff --git a/tests/test-keyword.t b/tests/test-keyword.t
--- a/tests/test-keyword.t
+++ b/tests/test-keyword.t
@@ -440,6 +440,24 @@
   $ hg update -C
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
+record added keyword ignored file
+
+  $ echo '$Id$' > i
+  $ hg add i
+  $ hg --verbose record -d '1 13' -m recignored<<EOF
+  > y
+  > EOF
+  diff --git a/i b/i
+  new file mode 100644
+  examine changes to 'i'? [Ynsfdaq?] 
+  i
+  committed changeset 3:5f40fe93bbdc
+  $ cat i
+  $Id$
+  $ hg -q rollback
+  $ hg forget i
+  $ rm i
+
 Test patch queue repo
 
   $ hg init --mq
@@ -775,8 +793,12 @@
 
   $ mkdir x
   $ hg copy a x/a
+  $ hg --verbose kwshrink a
+  overwriting a shrinking keywords
+  $ hg status a
   $ hg --verbose kwexpand a
   overwriting a expanding keywords
+  $ hg status a
 
 kwexpand x/a should abort
 


More information about the Mercurial-devel mailing list