##// END OF EJS Templates
prepush: fix bug in warning message selection...
prepush: fix bug in warning message selection In certain situations you would be told "you should pull and merge" even when there is nothing to pull.

File last commit:

r10908:816bac2f stable
r10908:816bac2f stable
Show More
test-push-warn
267 lines | 4.8 KiB | text/plain | TextLexer
mpm@selenic.com
Warn on pushing unsynced repo or adding new heads...
r816 #!/bin/sh
Sune Foldager
partial backout of 1e819576e926 and add tests (issue2131)...
r10875 echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
mpm@selenic.com
Warn on pushing unsynced repo or adding new heads...
r816 mkdir a
cd a
hg init
echo foo > t1
hg add t1
Thomas Arendsen Hein
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero....
r1933 hg commit -m "1" -d "1000000 0"
mpm@selenic.com
Warn on pushing unsynced repo or adding new heads...
r816
cd ..
hg clone a b
cd a
echo foo > t2
hg add t2
Thomas Arendsen Hein
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero....
r1933 hg commit -m "2" -d "1000000 0"
mpm@selenic.com
Warn on pushing unsynced repo or adding new heads...
r816
cd ../b
echo foo > t3
hg add t3
Thomas Arendsen Hein
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero....
r1933 hg commit -m "3" -d "1000000 0"
mpm@selenic.com
Warn on pushing unsynced repo or adding new heads...
r816
hg push ../a
hg pull ../a
hg push ../a
Vadim Gelfer
deprecate 'update -m'. use 'merge' instead.
r2283 hg merge
Thomas Arendsen Hein
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero....
r1933 hg commit -m "4" -d "1000000 0"
mpm@selenic.com
Warn on pushing unsynced repo or adding new heads...
r816 hg push ../a
Thomas Arendsen Hein
Fix hg push and hg push -r sometimes creating new heads without --force....
r2021 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
Vadim Gelfer
deprecate 'update -m'. use 'merge' instead.
r2283 HGMERGE=true hg merge 3
Thomas Arendsen Hein
Fix hg push and hg push -r sometimes creating new heads without --force....
r2021 hg ci -m c-d -d "1000000 0"
Thomas Arendsen Hein
Don't report an error when closing heads during local push (issue387)
r3803 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 $?
Sune Foldager
prepush: fix bug in warning message selection...
r10908 hg in ../c
Thomas Arendsen Hein
Fix hg push and hg push -r sometimes creating new heads without --force....
r2021
Sune Foldager
prepush: fix bug in warning message selection...
r10908 echo % issue 450
Benoit Boissinot
fix calculation of new heads added during push with -r...
r3923 hg init ../e
hg push -r 0 ../e ; echo $?
hg push -r 1 ../e ; echo $?
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 cd ..
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
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 hg push ../f; echo $?
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 hg push -r 4 -r 5 ../f; echo $?
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 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
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 echo % fail on multiple head push
hg -q up 1
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 echo 7 > foo
hg -q ci -d "1000000 0" -m 7
hg push -r 4 -r 7 ../f; echo $?
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565
echo % push replacement head on existing branches
hg -q up 3
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 echo 8 > foo
hg -q ci -d "1000000 0" -m 8
hg push -r 7 -r 8 ../f; echo $?
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565
echo % merge of branch a to other branch b followed by unrelated push on branch a
hg -q up 7
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 HGMERGE=true hg -q merge 8
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 hg -q ci -d "1000000 0" -m 9
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 hg -q up 8
echo 10 > foo
hg -q ci -d "1000000 0" -m 10
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 hg push -r 9 ../f; echo $?
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 hg push -r 10 ../f; echo $?
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565
echo % cheating the counting algorithm
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 hg -q up 9
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 HGMERGE=true hg -q merge 2
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 hg -q ci -d "1000000 0" -m 11
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565 hg -q up 1
Benoit Boissinot
prepush: warn about every new outgoing named branch, not just the first
r10354 echo 12 > foo
hg -q ci -d "1000000 0" -m 12
hg push -r 11 -r 12 ../f; echo $?
Sune Foldager
tests: add tests for new pre-push logic (issue736)...
r8565
Sune Foldager
push: fix subtle bug in prepush logic...
r9479 echo % checking prepush logic does not allow silently pushing multiple new heads
cd ..
Henrik Stuart
tests: fix inadvertent use of existing test repository
r9609 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
Sune Foldager
push: fix subtle bug in prepush logic...
r9479 hg -R h up 0
Henrik Stuart
tests: fix inadvertent use of existing test repository
r9609 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
Sune Foldager
push: fix subtle bug in prepush logic...
r9479 echo
Sune Foldager
fix bug in prepush logic involving merge changesets...
r9954 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
Sune Foldager
push: fix bug in prepush logic and its tests
r10771 echo % prepush -r should not allow you to sneak in new heads
hg init l
cd l
echo a >> foo
hg -q add foo
hg -q branch a
hg -q ci -d '0 0' -ma
hg -q up null
echo a >> foo
hg -q add foo
hg -q branch b
hg -q ci -d '0 0' -mb
cd ..
hg -q clone l m -u a
cd m
hg -q merge b
hg -q ci -d '0 0' -mmb
hg -q up 0
echo a >> foo
hg -q ci -ma2
hg -q up 2
echo a >> foo
hg -q branch -f b
hg -q ci -d '0 0' -mb2
hg -q merge 3
hg -q ci -d '0 0' -mma
hg push ../l -b b
Sune Foldager
partial backout of 1e819576e926 and add tests (issue2131)...
r10875 cd ..
echo % check prepush with new branch head on former topo non-head
hg init n
cd n
hg branch A
echo a >a
hg ci -Ama
hg branch B
echo b >b
hg ci -Amb
# b is now branch head of B, and a topological head
# a is now branch head of A, but not a topological head
hg clone . inner
cd inner
hg up B
echo b1 >b1
hg ci -Amb1
# in the clone b1 is now the head of B
cd ..
hg up 0
echo a2 >a2
hg ci -Ama2
# a2 is now the new branch head of A, and a new topological head
# it replaces a former inner branch head, so it should at most warn about A, not B
echo %% glog of local
hg glog --template "{rev}: {branches} {desc}\n"
echo %% glog of remote
hg glog -R inner --template "{rev}: {branches} {desc}\n"
echo %% outgoing
hg out inner --template "{rev}: {branches} {desc}\n"
hg push inner
cd ..
echo % check prepush with new branch head on former topo head
hg init o
cd o
hg branch A
echo a >a
hg ci -Ama
hg branch B
echo b >b
hg ci -Amb
# b is now branch head of B, and a topological head
hg up 0
echo a1 >a1
hg ci -Ama1
# a1 is now branch head of A, and a topological head
hg clone . inner
cd inner
hg up B
echo b1 >b1
hg ci -Amb1
# in the clone b1 is now the head of B
cd ..
echo a2 >a2
hg ci -Ama2
# a2 is now the new branch head of A, and a topological head
# it replaces a former topological and branch head, so this should not warn
echo %% glog of local
hg glog --template "{rev}: {branches} {desc}\n"
echo %% glog of remote
hg glog -R inner --template "{rev}: {branches} {desc}\n"
echo %% outgoing
hg out inner --template "{rev}: {branches} {desc}\n"
hg push inner
cd ..
Sune Foldager
push: fix bug in prepush logic and its tests
r10771
Thomas Arendsen Hein
Fix hg push and hg push -r sometimes creating new heads without --force....
r2021 exit 0