- In Mercurial, it's possible to have multiple branch heads with the same name.
- In Git, it's possible to have multiple symbols (e.g., a tag and also a branch) with the same name.
- The UX these cases is bad.
- We don't degrade gracefully (we should select the best alternative and continue).
- We conflate "missing" and "ambiguous" references, but these are significantly different.
- We don't present the error in a helpful way.
I am getting the 'Ref "default" is ambiguous or does not exist' error in one of my Mercurial repository after updating PH to latest. I went thru the commits and manually undo commit d98eb2c to get PH back up and running.
I think the issue is because there are multiple "default" branches in my repository. I am not sure how that is even possible as it was before my time. I "think" we were using subrepository at that time so maybe that's why there were multiple default branches inside a repo.