extensions: recommend against using wrapfunction for repo methods
Instead, all extensions should use the "dynamic subclass" trick:
subclass repo.__class__ and then replace repo.__class__ with your new
subclass. This avoids conflicts that happen when one extension uses
wrapfunction and another uses subclassing to extend the same method of
localrepository.
#!/bin/sh
"$TESTDIR/hghave" no-outer-repo || exit 80
echo % no repo
hg id
echo % create repo
hg init test
cd test
echo a > a
hg ci -Ama
echo % basic id usage
hg id
hg id --debug
hg id -q
hg id -v
echo % with options
hg id -r.
hg id -n
hg id -t
hg id -b
hg id -i
hg id -n -t -b -i
echo % with modifications
echo b > a
hg id -n -t -b -i
echo % other local repo
cd ..
hg -R test id
hg id test
echo % with remote http repo
cd test
hg serve -p $HGPORT1 -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg id http://localhost:$HGPORT1/
echo % remote with tags?
hg id -t http://localhost:$HGPORT1/
true # ends with util.Abort -> returns 255