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
rm -rf a
hg init a
cd a
echo a > a
hg ci -Am0
hg tag t1 # 1
hg tag --remove t1 # 2
hg co 1
hg tag -r0 t1
hg tags