view tests/test-merge-default @ 11988:8380ed691df8

util: add an interpolate() function to for replacing multiple values util.interpolate can be used to replace multiple items in a string all at once (and optionally apply a function to the replacement), without worrying about recursing: >>> import util >>> s = '$foo, $spam' >>> util.interpolate(r'\$', { 'foo': 'bar', 'spam': 'eggs' }, s) 'bar, eggs' >>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s) 'spam, foo' >>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s, lambda s: s.upper()) 'SPAM, FOO' The patch also changes filemerge.py to use this new function.
author Steve Losh <steve@stevelosh.com>
date Wed, 18 Aug 2010 18:18:26 -0400
parents 95c7c4b7e67a
children
line wrap: on
line source

#!/bin/sh

hg init
echo a > a
hg commit -A -ma

echo b >> a
hg commit -mb

echo c >> a
hg commit -mc

hg up 1
echo d >> a
hg commit -md

hg up 1
echo e >> a
hg commit -me

hg up 1
echo % should fail because not at a head
hg merge

hg up
echo % should fail because \> 2 heads
HGMERGE=internal:other; export HGMERGE
hg merge

echo % should succeed
hg merge 2
hg commit -mm1

echo % should succeed - 2 heads
hg merge -P
hg merge
hg commit -mm2

echo % should fail because at tip
hg merge

hg up 0
echo % should fail because 1 head
hg merge

hg up 3
echo f >> a
hg branch foobranch
hg commit -mf
echo % should fail because merge with other branch
hg merge

# Test for issue2043: ensure that 'merge -P' shows ancestors of 6 that
# are not ancestors of 7, regardless of where their least common
# ancestor is.
echo % merge preview not affected by common ancestor
hg up -q 7
hg merge -q -P 6         # expect: 2, 4, 5, 6

true