HomePhabricator

bookmarks: avoid traceback when two pushes race to delete the same bookmark

Description

bookmarks: avoid traceback when two pushes race to delete the same bookmark

hg push -f -B remote-only-bookmark can raise server-side in
bookmarks._del (specifically in self._refmap.pop(mark)), if the
remote-only bookmark got deleted concurrently.

Fix this by simply not deleting the non-existent bookmark in that
case.

For avoidance of doubt, refusing to delete a bookmark that doesn't
exist when the push starts is taking care of elsewhere; no change of
behavior there.

Differential Revision: https://phab.mercurial-scm.org/D8124