view tests/test-push-warn @ 10545:b9e4a67329cd stable

Updated contrib/vim/patchreview.* to version 0.2.1 1) adds a :DiffReview command to review code changes in the current workspace. 2) removes the need to have patchutils (specifically filterdiff) installed on the system by implementing patch extraction in pure vim script.
author Manpreet Singh <junkblocker@yahoo.com>
date Wed, 24 Feb 2010 13:12:17 -0800
parents 844d83da2da9
children 01f097c4ae66
line wrap: on
line source

#!/bin/sh

mkdir a
cd a
hg init
echo foo > t1
hg add t1
hg commit -m "1" -d "1000000 0"

cd ..
hg clone a b

cd a
echo foo > t2
hg add t2
hg commit -m "2" -d "1000000 0"

cd ../b
echo foo > t3
hg add t3
hg commit -m "3" -d "1000000 0"

hg push ../a
hg pull ../a
hg push ../a
hg merge
hg commit -m "4" -d "1000000 0"
hg push ../a
cd ..

hg init c
cd c
for i in 0 1 2; do
    echo $i >> foo
    hg ci -Am $i -d "1000000 0"
done
cd ..

hg clone c d
cd d
for i in 0 1; do
    hg co -C $i
    echo d-$i >> foo
    hg ci -m d-$i -d "1000000 0"
done

HGMERGE=true hg merge 3
hg ci -m c-d -d "1000000 0"

hg push ../c; echo $?
hg push -r 2 ../c; echo $?
hg push -r 3 ../c; echo $?
hg push -r 3 -r 4 ../c; echo $?
hg push -f -r 3 -r 4 ../c; echo $?
hg push -r 5 ../c; echo $?

# issue 450
hg init ../e
hg push -r 0 ../e ; echo $?
hg push -r 1 ../e ; echo $?

cd ..

# issue 736
echo % issue 736
hg init f
cd f
hg -q branch a
echo 0 > foo
hg -q ci -d "1000000 0" -Am 0
echo 1 > foo
hg -q ci -d "1000000 0" -m 1
hg -q up 0
echo 2 > foo
hg -q ci -d "1000000 0" -m 2
hg -q up 0
hg -q branch b
echo 3 > foo
hg -q ci -d "1000000 0" -m 3
cd ..

hg -q clone f g
cd g

echo % push on existing branch and new branch
hg -q up 1
echo 4 > foo
hg -q ci -d "1000000 0" -m 4
hg -q up 0
echo 5 > foo
hg -q branch c
hg -q ci -d "1000000 0" -m 5
hg push ../f; echo $?
hg push -r 4 -r 5 ../f; echo $?

echo % multiple new branches
hg -q branch d
echo 6 > foo
hg -q ci -d "1000000 0" -m 6
hg push ../f; echo $?
hg push -r 4 -r 6 ../f; echo $?
cd ../g

echo % fail on multiple head push
hg -q up 1
echo 7 > foo
hg -q ci -d "1000000 0" -m 7
hg push -r 4 -r 7 ../f; echo $?

echo % push replacement head on existing branches
hg -q up 3
echo 8 > foo
hg -q ci -d "1000000 0" -m 8
hg push -r 7 -r 8 ../f; echo $?

echo % merge of branch a to other branch b followed by unrelated push on branch a
hg -q up 7
HGMERGE=true hg -q merge 8
hg -q ci -d "1000000 0" -m 9
hg -q up 8
echo 10 > foo
hg -q ci -d "1000000 0" -m 10
hg push -r 9 ../f; echo $?
hg push -r 10 ../f; echo $?

echo % cheating the counting algorithm
hg -q up 9
HGMERGE=true hg -q merge 2
hg -q ci -d "1000000 0" -m 11
hg -q up 1
echo 12 > foo
hg -q ci -d "1000000 0" -m 12
hg push -r 11 -r 12 ../f; echo $?

echo % checking prepush logic does not allow silently pushing multiple new heads
cd ..
hg init h
echo init > h/init
hg -R h ci -Am init
echo a > h/a
hg -R h ci -Am a
hg clone h i
hg -R h up 0
echo b > h/b
hg -R h ci -Am b
hg -R i up 0
echo c > i/c
hg -R i ci -Am c
hg -R i push h
echo

echo % check prepush logic with merged branches
hg init j
hg -R j branch a
echo init > j/foo
hg -R j ci -Am init
hg clone j k
echo a1 > j/foo
hg -R j ci -m a1
hg -R k branch b
echo b > k/foo
hg -R k ci -m b
hg -R k up 0
hg -R k merge b
hg -R k ci -m merge
hg -R k push -r a j
echo

exit 0