[PATCH 2 of 2 stable] keyword: go into restricted mode when transplanting

Christian Ebert blacktrash at gmx.net
Wed Dec 23 06:05:59 CST 2009


# HG changeset patch
# User Christian Ebert <blacktrash at gmx.net>
# Date 1261569857 0
# Node ID 80348d746babf24f971736bc6994dcfdf58f3685
# Parent  e0b38b9dcebbf564ab5fda50db0cc8c0cfbd0ac6
keyword: go into restricted mode when transplanting

Expanded keyword is read into diff with transplant -b otherwise.
Test this scenario.

Thanks to Adam Berkes for providing an example case.

diff --git a/hgext/keyword.py b/hgext/keyword.py
--- a/hgext/keyword.py
+++ b/hgext/keyword.py
@@ -93,7 +93,8 @@
 
 # hg commands that trigger expansion only when writing to working dir,
 # not when reading filelog, and unexpand when reading from working dir
-restricted = 'merge record resolve qfold qimport qnew qpush qrefresh qrecord'
+restricted = ('merge record resolve qfold qimport qnew qpush qrefresh qrecord'
+              ' transplant')
 
 # provide cvs-like UTC date filter
 utcdate = lambda x: util.datestr(x, '%Y/%m/%d %H:%M:%S')
diff --git a/tests/test-keyword b/tests/test-keyword
--- a/tests/test-keyword
+++ b/tests/test-keyword
@@ -5,6 +5,7 @@
 hgext.keyword =
 hgext.mq =
 hgext.notify =
+hgext.transplant =
 EOF
 
 # demo before [keyword] files are set up
@@ -337,6 +338,23 @@
 hg commit -m localresolve
 cat m
 
+echo % test restricted mode with transplant -b
+hg update 6
+hg branch foo
+mv a a.bak
+echo foobranch > a
+cat a.bak >> a
+rm a.bak
+hg commit -m 9foobranch
+hg update default
+hg -y transplant -b foo tip
+echo % no expansion in changeset
+hg tip -p
+echo % expansion in file
+head -n 2 a
+hg -q rollback
+hg -q update -C
+
 echo % switch off expansion
 echo % kwshrink with unknown file u
 cp a u
diff --git a/tests/test-keyword.out b/tests/test-keyword.out
--- a/tests/test-keyword.out
+++ b/tests/test-keyword.out
@@ -418,6 +418,33 @@
 % resolve to local
 $Id: m 43dfd2854b5b Thu, 01 Jan 1970 00:00:00 +0000 test $
 bar
+% test restricted mode with transplant -b
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+marked working directory as branch foo
+created new head
+2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+applying 1c4378f51c4d
+1c4378f51c4d transplanted to 7d855abcab87
+% no expansion in changeset
+changeset:   11:7d855abcab87
+tag:         tip
+parent:      9:43dfd2854b5b
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     9foobranch
+
+diff -r 43dfd2854b5b -r 7d855abcab87 a
+--- a/a	Thu Jan 01 00:00:00 1970 +0000
++++ b/a	Thu Jan 01 00:00:00 1970 +0000
+@@ -1,3 +1,4 @@
++foobranch
+ expand $Id$
+ do not process $Id:
+ xxx $
+
+% expansion in file
+foobranch
+expand $Id: a 7d855abcab87 Thu, 01 Jan 1970 00:00:00 +0000 test $
 % switch off expansion
 % kwshrink with unknown file u
 overwriting a shrinking keywords


More information about the Mercurial-devel mailing list