mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
adbae861a8
MQ patch name can contain slashes, e.g. 'foo/bar.patch'. Currently "qnew foo/bar.patch" works, but "qrename foo/bar.patch new/dir.patch" fails with "No such file or directory". Also added test case for "qnew foo/bar.patch"
112 lines
1.8 KiB
Bash
Executable File
112 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
catpatch() {
|
|
cat $1 | sed -e "s/^\(# Parent \).*/\1/"
|
|
}
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "mq=" >> $HGRCPATH
|
|
|
|
runtest() {
|
|
hg init mq
|
|
cd mq
|
|
|
|
echo a > a
|
|
hg ci -Ama
|
|
|
|
echo '% qnew should refuse bad patch names'
|
|
hg qnew series
|
|
hg qnew status
|
|
hg qnew guards
|
|
hg qnew .hgignore
|
|
hg qnew .mqfoo
|
|
hg qnew 'foo#bar'
|
|
hg qnew 'foo:bar'
|
|
|
|
hg qinit -c
|
|
|
|
echo '% qnew with name containing slash'
|
|
hg qnew foo/bar.patch
|
|
hg qseries
|
|
hg qpop
|
|
hg qdelete foo/bar.patch
|
|
|
|
echo '% qnew with uncommitted changes'
|
|
echo a > somefile
|
|
hg add somefile
|
|
hg qnew uncommitted.patch
|
|
hg st
|
|
hg qseries
|
|
|
|
echo '% qnew implies add'
|
|
hg -R .hg/patches st
|
|
|
|
echo '% qnew missing'
|
|
hg qnew missing.patch missing
|
|
|
|
echo '% qnew -m'
|
|
hg qnew -m 'foo bar' mtest.patch
|
|
catpatch .hg/patches/mtest.patch
|
|
|
|
echo '% qnew twice'
|
|
hg qnew first.patch
|
|
hg qnew first.patch
|
|
|
|
touch ../first.patch
|
|
hg qimport ../first.patch
|
|
|
|
echo '% qnew -f from a subdirectory'
|
|
hg qpop -a
|
|
mkdir d
|
|
cd d
|
|
echo b > b
|
|
hg ci -Am t
|
|
echo b >> b
|
|
hg st
|
|
hg qnew -g -f p
|
|
catpatch ../.hg/patches/p
|
|
|
|
echo '% qnew -u with no username configured'
|
|
HGUSER= hg qnew -u blue red
|
|
catpatch ../.hg/patches/red
|
|
|
|
echo '% fail when trying to import a merge'
|
|
hg init merge
|
|
cd merge
|
|
touch a
|
|
hg ci -Am null
|
|
echo a >> a
|
|
hg ci -m a
|
|
hg up -r 0
|
|
echo b >> a
|
|
hg ci -m b
|
|
hg merge -f 1
|
|
hg resolve --mark a
|
|
hg qnew -f merge
|
|
|
|
cd ../../..
|
|
rm -r mq
|
|
}
|
|
|
|
|
|
echo '%%% plain headers'
|
|
|
|
echo "[mq]" >> $HGRCPATH
|
|
echo "plain=true" >> $HGRCPATH
|
|
|
|
mkdir sandbox
|
|
(cd sandbox ; runtest)
|
|
rm -r sandbox
|
|
|
|
|
|
echo '%%% hg headers'
|
|
|
|
echo "plain=false" >> $HGRCPATH
|
|
|
|
mkdir sandbox
|
|
(cd sandbox ; runtest)
|
|
rm -r sandbox
|
|
|
|
|
|
exit 0
|