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.
This commit is contained in:
Christian Ebert 2008-08-22 08:26:18 +02:00
parent 4c144a2f64
commit ef7b051c64
3 changed files with 53 additions and 1 deletions

View File

@ -94,7 +94,7 @@ nokwcommands = ('add addremove annotate bundle copy export grep incoming init'
# 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.'''

View File

@ -301,6 +301,31 @@ echo % hgweb filediff
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

View File

@ -437,9 +437,36 @@ xa
% 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$