Mercurial > hg-stable
changeset 6933:17bdcd59b9ad
keyword: avoid additional conflicts during merge/resolve
Make merge and resolve trigger kwtemplater.restricted to compare
data without keyword expansion.
The keyword stays outside the conflict:
$Keyword$
<<<<<<< local
bar
=======
foo
>>>>>>> other
and will again be expanded on commit.
Demonstrate in test case.
author | Christian Ebert <blacktrash@gmx.net> |
---|---|
date | Fri, 22 Aug 2008 08:26:18 +0200 |
parents | d557749c627a |
children | b4749456d306 |
files | hgext/keyword.py tests/test-keyword tests/test-keyword.out |
diffstat | 3 files changed, 53 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/keyword.py Fri Aug 22 13:25:35 2008 +0200 +++ b/hgext/keyword.py Fri Aug 22 08:26:18 2008 +0200 @@ -94,7 +94,7 @@ # hg commands that trigger expansion only when writing to working dir, # not when reading filelog, and unexpand when reading from working dir -restricted = 'record qfold qimport qnew qpush qrefresh qrecord' +restricted = 'merge record resolve qfold qimport qnew qpush qrefresh qrecord' def utcdate(date): '''Returns hgdate in cvs-like UTC format.'''
--- a/tests/test-keyword Fri Aug 22 13:25:35 2008 +0200 +++ b/tests/test-keyword Fri Aug 22 08:26:18 2008 +0200 @@ -301,6 +301,31 @@ echo % errors encountered cat errors.log +echo % merge/resolve +echo '$Id$' > m +hg add m +hg commit -m 4kw +echo foo >> m +hg commit -m 5foo +echo % simplemerge +hg update 4 +echo foo >> m +hg commit -m 6foo +hg merge +hg commit -m simplemerge +cat m +echo % conflict +hg update 4 +echo bar >> m +hg commit -m 8bar +hg merge +echo % keyword stays outside conflict zone +cat m +echo % resolve to local +HGMERGE=internal:local hg resolve +hg commit -m localresolve +cat m + echo % switch off expansion echo % kwshrink with unknown file u cp a u
--- a/tests/test-keyword.out Fri Aug 22 13:25:35 2008 +0200 +++ b/tests/test-keyword.out Fri Aug 22 08:26:18 2008 +0200 @@ -437,9 +437,36 @@ % errors encountered +% merge/resolve +% simplemerge +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +created new head +0 files updated, 0 files merged, 0 files removed, 0 files unresolved +(branch merge, don't forget to commit) +$Id: m 8731e1dadc99 Thu, 01 Jan 1970 00:00:00 +0000 test $ +foo +% conflict +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +created new head +merging m +warning: conflicts during merge. +merging m failed! +0 files updated, 0 files merged, 0 files removed, 1 files unresolved +use 'hg resolve' to retry unresolved file merges +% keyword stays outside conflict zone +$Id$ +<<<<<<< local +bar +======= +foo +>>>>>>> other +% resolve to local +$Id: m 43dfd2854b5b Thu, 01 Jan 1970 00:00:00 +0000 test $ +bar % switch off expansion % kwshrink with unknown file u overwriting a shrinking keywords +overwriting m shrinking keywords overwriting x/a shrinking keywords % cat expand $Id$