AmbiguousCommand is raised too soon.
Right now, hg raises AmbiguousCommand as soon as it finds two
commands/aliases that start with the substring it's searching for, even
though it may still find a full match later on.
This is a bit hard to hit on purpose, because hg checks the list of
commands in whatever order is returned by table.keys(), which will
change when you add an alias to a command. You should be able to hit it
by adding an alias "u" to the "identify" command - not that that makes a
lot of sense...
#!/bin/sh
HG=hg
"$HG" init
mkdir b
echo 'Bouncy' >b/bouncy
echo 'tricycle' >b/vehicle
"$HG" add b/bouncy
"$HG" add b/vehicle
"$HG" commit -m 'Adding bouncy'
echo 'bouncy' >>b/bouncy
"$HG" commit -m 'Making it bouncier'
"$HG" update -C 0
echo 'stationary' >>b/vehicle
"$HG" commit -m 'Clarifying the vehicle.'
"$HG" update -C 1
chmod a-w b/vehicle
"$HG" update -m 2 2>&1 | sed 's|^\(.*[ ]\).*/\([^/]*/[^/]*/[^/]*\)$|\1\2|g'