A tale of user-friendliness with "hg merge" and "hg rollback".

Matt Mackall mpm at selenic.com
Mon Oct 12 22:49:11 UTC 2009


On Mon, 2009-10-12 at 23:44 +0200, Dennis Brakhane wrote:
> But I agree with you that the usability of merge could be improved,
> it's easier to shoot yourself in the foot that it
> should be

While that may be true, this is more a story of how to fail massively by
being blinded by your own preconceptions despite all evidence to the
contrary.

Rob was told 'abort: outstanding uncommitted changes'(1), did not stop
to comprehend it (but ironically did complain about how it didn't mesh
with his understanding at all!), pulled up the help on 'hg merge',
ignored all the body text including the first line ('merge working
directory with another revision'(2)) and the second paragraph ('a commit
must be performed before any further updates to the repository are
allowed') and went straight for the warranty-voiding --force(3) option.
At points (1), (2), or (3), he should have instead said to himself 'wait
a second, maybe this command I've never used doesn't work the way I
think it does.'

When that didn't work as his preconceptions supposed, rather than
understand the new problem, he reached for a bigger hammer named
'rollback', which also explains in detail exactly how dangerous it is
and exactly how it doesn't work like Rob was expecting right in its
help, starting with 'This command should be used with care'.

In general, it's impossible to help people who won't 'wait a second' and
brute-force themselves past error messages they don't understand. You
cannot make the error message big enough, explicit enough, or scary
enough to deter them. If we put a --force switch on rollback, they'll
still use it.

-- 
http://selenic.com : development and support for Mercurial and Linux





More information about the Mercurial mailing list