test-mq-qrefresh
194 lines
| 4.5 KiB
| text/plain
|
TextLexer
/ tests / test-mq-qrefresh
Giorgos Keramidas
|
r3136 | #!/bin/sh | ||
echo "[extensions]" >> $HGRCPATH | ||||
echo "mq=" >> $HGRCPATH | ||||
echo % init | ||||
hg init a | ||||
cd a | ||||
echo % commit | ||||
mkdir 1 2 | ||||
echo 'base' > 1/base | ||||
echo 'base' > 2/base | ||||
hg ci -Ambase -d '1 0' | ||||
echo % qnew mqbase | ||||
hg qnew -mmqbase mqbase | ||||
echo % qrefresh | ||||
echo 'patched' > 1/base | ||||
echo 'patched' > 2/base | ||||
hg qrefresh | ||||
echo % qdiff | ||||
hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qdiff dirname | ||||
hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % patch file contents | ||||
cat .hg/patches/mqbase | \ | ||||
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qrefresh 1 | ||||
echo 'patched again' > base | ||||
hg qrefresh 1 | ||||
echo % qdiff | ||||
hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qdiff dirname | ||||
hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % patch file contents | ||||
cat .hg/patches/mqbase | \ | ||||
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qrefresh . in subdir | ||||
( cd 1 ; hg qrefresh . ) | ||||
echo % qdiff | ||||
hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qdiff dirname | ||||
hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % patch file contents | ||||
cat .hg/patches/mqbase | \ | ||||
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qrefresh in hg-root again | ||||
hg qrefresh | ||||
echo % qdiff | ||||
hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % qdiff dirname | ||||
hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
echo % patch file contents | ||||
cat .hg/patches/mqbase | \ | ||||
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
Mads Kiilerich
|
r7113 | |||
Mads Kiilerich
|
r7177 | echo | ||
echo % qrefresh --short tests: | ||||
Mads Kiilerich
|
r7113 | echo 'orphan' > orphanchild | ||
hg add orphanchild | ||||
Mads Kiilerich
|
r7177 | |||
echo % - add 1/base and 2/base one by one | ||||
hg qrefresh nonexistingfilename # clear patch | ||||
Mads Kiilerich
|
r7113 | hg qrefresh --short 1/base | ||
hg qrefresh --short 2/base | ||||
Mads Kiilerich
|
r7177 | echo % -- qdiff output | ||
Mads Kiilerich
|
r7113 | hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
Mads Kiilerich
|
r7177 | echo % -- patch file content | ||
Mads Kiilerich
|
r7113 | cat .hg/patches/mqbase | \ | ||
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
Mads Kiilerich
|
r7177 | hg st | ||
Mads Kiilerich
|
r7113 | |||
Mads Kiilerich
|
r7177 | echo % -- diff shows what is not in patch | ||
Mads Kiilerich
|
r7113 | hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||||
-e "s/^\(diff\).*/\1/" | ||||
Mads Kiilerich
|
r7177 | echo % - before starting exclusive tests | ||
sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase | ||||
echo % - exclude 2/base | ||||
hg qref -s -X 2/base | ||||
sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase | ||||
echo % -- status shows 2/base as dirty | ||||
hg st | ||||
echo % - remove 1/base and add 2/base again but not orphanchild | ||||
hg qref -s -X orphanchild -X 1/base 2/base orphanchild | ||||
sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase | ||||
echo % - add 1/base with include filter - and thus remove 2/base from patch | ||||
hg qref -s -I 1/ o* */* | ||||
sed -n '/^diff/s/diff -r [^ ]* //p' .hg/patches/mqbase | ||||
echo | ||||
Patrick Mezard
|
r6801 | cd .. | ||
# Test qrefresh --git losing copy metadata | ||||
echo % create test repo | ||||
hg init repo | ||||
cd repo | ||||
Patrick Mezard
|
r7566 | echo "[diff]" >> .hg/hgrc | ||
echo "git=True" >> .hg/hgrc | ||||
Patrick Mezard
|
r6801 | echo a > a | ||
hg ci -Am adda | ||||
hg copy a ab | ||||
echo b >> ab | ||||
hg copy a ac | ||||
echo c >> ac | ||||
echo % capture changes | ||||
hg qnew -f p1 | ||||
hg qdiff | ||||
echo % refresh and check changes again | ||||
hg qref | ||||
hg qdiff | ||||
cd .. | ||||
Patrick Mezard
|
r7566 | # Test issue 1441: qrefresh confused after hg rename | ||
echo % issue1441 without git patches | ||||
hg init repo-1441 | ||||
cd repo-1441 | ||||
echo a > a | ||||
hg add a | ||||
hg qnew -f p | ||||
hg mv a b | ||||
hg qrefresh | ||||
hg qdiff --nodates | ||||
cd .. | ||||
Patrick Mezard
|
r10367 | echo '% issue2025: qrefresh does not honor filtering options when tip != qtip' | ||
hg init repo-2025 | ||||
cd repo-2025 | ||||
echo a > a | ||||
echo b > b | ||||
hg ci -qAm addab | ||||
echo a >> a | ||||
echo b >> b | ||||
hg qnew -f patch | ||||
hg up -qC 0 | ||||
echo c > c | ||||
hg ci -qAm addc | ||||
hg up -qC 1 | ||||
echo '% refresh with tip != qtip' | ||||
hg --config diff.nodates=1 qrefresh -I b 2>&1 \ | ||||
| sed 's/saving bundle.*/saving bundle.../g' | ||||
echo '% status after refresh' | ||||
hg st | ||||
echo '% b after refresh' | ||||
cat b | ||||
echo '% patch file after refresh' | ||||
cat .hg/patches/patch | ||||
cd .. | ||||
Patrick Mezard
|
r7566 | echo % issue1441 with git patches | ||
hg init repo-1441-git | ||||
cd repo-1441-git | ||||
echo "[diff]" >> .hg/hgrc | ||||
echo "git=True" >> .hg/hgrc | ||||
echo a > a | ||||
hg add a | ||||
hg qnew -f p | ||||
hg mv a b | ||||
hg qrefresh | ||||
hg qdiff --nodates | ||||
Matt Mackall
|
r10282 | cd .. | ||