Mercurial > hg-stable
view tests/test-push-warn @ 9693:c40a1ee20aa5
transaction: always remove empty journal on abort
When transactions without entries were aborted, the journal (of size 0) was not
unlinked, which prevents subsequent operations until hg recover is run on the
repository.
We also make sure the journal is unlinked when committing, even if the provided
hook doesn't do so.
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Mon, 02 Nov 2009 10:19:14 +0100 |
parents | aa404f3f661b |
children | d6a307719ccb |
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 -r 4 -r 5 ../f; echo $? echo % fail on multiple head push hg -q up 1 echo 6 > foo hg -q ci -d "1000000 0" -m 6 hg push -r 4 -r 6 ../f; echo $? echo % push replacement head on existing branches hg -q up 3 echo 7 > foo hg -q ci -d "1000000 0" -m 7 hg push -r 6 -r 7 ../f; echo $? echo % merge of branch a to other branch b followed by unrelated push on branch a hg -q up 6 HGMERGE=true hg -q merge 7 hg -q ci -d "1000000 0" -m 8 hg -q up 7 echo 9 > foo hg -q ci -d "1000000 0" -m 9 hg push -r 8 ../f; echo $? hg push -r 9 ../f; echo $? echo % cheating the counting algorithm hg -q up 8 HGMERGE=true hg -q merge 2 hg -q ci -d "1000000 0" -m 10 hg -q up 1 echo 11 > foo hg -q ci -d "1000000 0" -m 11 hg push -r 10 -r 11 ../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 exit 0