# HG changeset patch # User Christian Ebert # Date 1261569857 0 # Node ID 13a6a2c0440f35b74d5b1bb93a14ebecf7ece78e # Parent 52b03aad673ba43154e13f172d713f0869014a9f 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 -r 52b03aad673b -r 13a6a2c0440f hgkw/keyword.py --- a/hgkw/keyword.py Wed Dec 23 12:04:04 2009 +0000 +++ b/hgkw/keyword.py Wed Dec 23 12:04:17 2009 +0000 @@ -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 -r 52b03aad673b -r 13a6a2c0440f tests/test-keyword --- a/tests/test-keyword Wed Dec 23 12:04:04 2009 +0000 +++ b/tests/test-keyword Wed Dec 23 12:04:17 2009 +0000 @@ -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 -r 52b03aad673b -r 13a6a2c0440f tests/test-keyword.out --- a/tests/test-keyword.out Wed Dec 23 12:04:04 2009 +0000 +++ b/tests/test-keyword.out Wed Dec 23 12:04:17 2009 +0000 @@ -420,6 +420,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