This is a followup to T3855, which discussed an array of different issues in Git and Mercurial.
The issues in Git were resolved in work related to T9657. Remaining issues are specific to Mercurial, and likely best resolved with a similar update.
arc land in Mercurial should support these operations (or have some other reasonable behavior when users attempt them):
- landing from a bookmark to a branch.
- landing from a branch to a bookmark.
- landing from a bookmark to itself.
- landing from a branch to itself.
- handling situations where a branch has multiple heads.
Also, like the modern Git workflow, the error behavior should be to attempt to restore the original working copy state, even if that means discarding some work.