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
cleanoutput () {
sed -e 's/\(Rebase status stored to\).*/\1/' \
-e 's/\(Rebase status restored from\).*/\1/' \
-e 's/\(saving bundle to \).*/\1/'
}
hg init a
cd a
echo 'c1' >common
hg add common
hg commit -d '0 0' -m "C1"
echo 'c2' >>common
hg commit -d '1 0' -m "C2"
echo 'c3' >>common
hg commit -d '2 0' -m "C3"
hg update -C 1
echo 'l1' >>extra
hg add extra
hg commit -d '3 0' -m "L1"
sed -e 's/c2/l2/' common > common.new
mv common.new common
hg commit -d '4 0' -m "L2"
hg glog --template '{rev}: {desc}\n'
echo
echo '% Conflicting rebase'
hg rebase -s 3 -d 2 2>&1 | cleanoutput
echo
echo '% Abort'
hg rebase --abort 2>&1 | cleanoutput
hg glog --template '{rev}: {desc}\n'