Pruned tag is still in the way
Heptapod has a protection against tags pointing to obsolete changesets.
It is implemented in py-heptapod, leading to such messages as "Refusing these changes, as they would make tag(s) [xyz] point to the obsolete changeset hhhhhhhhh".
But in the course of checking that, it will see tags that are themselves obsolete (introduced by an obsolete changeset).
As a result, a push that obsoletes some changesets can be refused because of a tag that users don't see (perhaps even with the
--hidden option because they never pulled it before it got obsolete).
That happened to me yesterday for the preparation of Heptapod 0.20.0 when I was trying to clean up after a misbehaviour in a packaging script. The only workaround is to supersede the obsolete tag first (with
hg tag -f) so that it does not point to the changeset to be obsoleted any more.
The check should only guard against non-obsolete tags pointing to obsolete changesets.