view tests/test-rebase-mq-skip @ 10135:9a4034b630c4 stable

patch: better handling of sequence of offset patch hunks (issue1941) The built-in patch implementation applied the hunks to the wrong lines of the file if the file in the repo has been modified to skew the patch line numbers and the file contains repetitive sequences of lines.
author Greg Onufer <gonufer@jazzhaiku.com>
date Wed, 09 Dec 2009 16:56:00 -0800
parents 8766fee6f225
children b345b1cc124f
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

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  2>&1 | sed -e 's/\(saving bundle to \).*/\1/'
hg glog  --template '{rev} {desc} tags: {tags}\n'