zsh completion: disable defaults and verbose output when completing
If ui.verbose is set to True in hgrc, commands used to provide completions
would yield bad results. For example, qpush completion would include the
patch numbers and statuses as returned by qunapplied -v, instead of just
the patch names.
Defaults are also disabled when completing to prevent similar issues when
an option is set that changes a command's output.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH
BASE=`pwd`
addcommit () {
echo $1 > $1
hg add $1
hg commit -d "${2} 0" -m $1
}
commit () {
hg commit -d "${2} 0" -m $1
}
cd $BASE
rm -rf a
hg init a
cd a
addcommit "C1" 0
addcommit "C2" 1
cd ..
hg clone a b
# This is needed to test pull --rebase
hg clone a c
cd b
addcommit "L1" 2
cd ../a
addcommit "R1" 3
cd ../b
echo
echo "% Now b has one revision to be pulled from a"
hg pull --rebase 2>&1 | sed -e 's/\(saving bundle to \).*/\1/' \
-e 's/\(pulling from \).*/\1/'
hg glog --template '{rev}:{desc}\n'
echo
echo "% Re-run pull --rebase"
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'
echo
echo "% Invoke pull --rebase and nothing to rebase"
cd ../c
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'
hg glog --template '{rev}\n' -l 1
echo
echo "% pull --rebase --update should ignore --update"
hg pull --rebase --update 2>&1 | sed 's/\(pulling from \).*/\1/'
echo
echo "% pull --rebase doesn't update if nothing has been pulled"
hg up 1
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'
hg glog --template '{rev}\n' -l 1
exit 0