|
|
#!/bin/sh
|
|
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
|
echo "mq=" >> $HGRCPATH
|
|
|
|
|
|
catpatch() {
|
|
|
cat $1 | sed -e "s/^\(# Parent \).*/\1/"
|
|
|
}
|
|
|
|
|
|
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
|
|
|
catpatch .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
|
|
|
catpatch .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
|
|
|
catpatch .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
|
|
|
catpatch .hg/patches/mqbase | \
|
|
|
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
|
|
|
|
|
|
echo
|
|
|
echo % qrefresh --short tests:
|
|
|
echo 'orphan' > orphanchild
|
|
|
hg add orphanchild
|
|
|
|
|
|
echo % - add 1/base and 2/base one by one
|
|
|
hg qrefresh nonexistingfilename # clear patch
|
|
|
hg qrefresh --short 1/base
|
|
|
hg qrefresh --short 2/base
|
|
|
|
|
|
echo % -- qdiff output
|
|
|
hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
|
|
|
|
|
|
echo % -- patch file content
|
|
|
catpatch .hg/patches/mqbase | \
|
|
|
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
|
|
|
hg st
|
|
|
|
|
|
echo % -- diff shows what is not in patch
|
|
|
hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/^\(diff\).*/\1/"
|
|
|
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
|
|
|
cd ..
|
|
|
|
|
|
# Test qrefresh --git losing copy metadata
|
|
|
echo % create test repo
|
|
|
hg init repo
|
|
|
cd repo
|
|
|
echo "[diff]" >> .hg/hgrc
|
|
|
echo "git=True" >> .hg/hgrc
|
|
|
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 ..
|
|
|
|
|
|
# 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 ..
|
|
|
|
|
|
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'
|
|
|
catpatch .hg/patches/patch
|
|
|
cd ..
|
|
|
|
|
|
|
|
|
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
|
|
|
cd ..
|
|
|
|