view tests/test-rebase-mq-skip @ 11965:77f1f206e135 stable

mq: don't inherit default and default-push paths with --mq (issue2333) Configuration from the outer repo is inherited to the patches repo when --mq is used. In case the patches repo only has paths.default configured but the outer repo has paths.default-push then the inherited default-push will win. Very confusing. Inheriting the default paths is however wrong in all sane cases, so now we explicitly remove them.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 18 Aug 2010 02:43:45 +0200
parents 00f8e7837668
children
line wrap: on
line source

#!/bin/sh
# This emulates the effects of an hg pull --rebase in which the remote repo 
# already has one local mq patch

. $TESTDIR/helpers.sh

echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH
echo "mq=" >> $HGRCPATH

hg init a
cd a
hg qinit -c # This must work even with a managed mq queue

echo 'c1' > c1
hg add c1
hg commit -d '0 0' -m "C1"

echo 'r1' > r1
hg add r1
hg commit -d '1 0' -m "R1"

hg up 0
hg qnew p0.patch
echo 'p0' > p0
hg add p0
hg qref -m 'P0'

hg qnew p1.patch
echo 'p1' > p1
hg add p1
hg qref -m 'P1'
hg export qtip > p1.patch 

echo
echo '% "Mainstream" import p1.patch'
hg up -C 1
hg import p1.patch
rm p1.patch

echo
echo '% Rebase'
hg up -C qtip
hg rebase | hidebackup
hg glog  --template '{rev} {desc} tags: {tags}\n'

echo
echo '% Now with --continue'
cd ..
hg init b
cd b
hg qinit -c # This must work even with a managed mq queue

for i in r0 r1 r2 r3 r4 r5 r6;
do
	echo $i > $i
	hg ci -Am $i
done
hg qimport -r 1:tip
hg up 0
for i in r1 r3 r7 r8;
do
	echo $i > $i
	hg ci -Am branch2-$i
done
echo somethingelse > r4
hg ci -Am branch2-r4
echo r6 > r6
hg ci -Am branch2-r6

hg up qtip
HGMERGE=internal:fail hg rebase | hidebackup
HGMERGE=internal:local hg resolve --all
hg rebase --continue | hidebackup
hg glog  --template '{rev} {desc} tags: {tags}\n'