[darcs-users] Re: argh. please change the name "unpull" (And what color to paint the bike shed)

Tommy Pettersson ptp at lysator.liu.se
Sat Mar 19 04:01:20 UTC 2005

Yes, the bike shed...

The best thing would of course be if we had hard figures from
new-user studies.  Then we could draw objective conclusions.

How many users accidently delete patches if the command is
named 'unpull', 'delete' or 'forget'?
How many users find/miss the command in the help list?
How many bosses have a clue?

The best thing we have is the darcs-users mailing
list (and maybe the ticket tracking system).  I have
looked through all mails to darcs-users with 'unpull'
in the body.  (I excluded this thread; this "rename
unpull" debate is the second one; there was one in
April/May 2004.  David then gave a thorough answer in

I tried to sort out especially the problems encountered by
new users.  I was one of them.  :-)  I was not overly careful,
so I may have missed one mail or two.

* Two users reports that they had looked a long time (half an
  hour) for 'unpull', and the reason in both cases was they
  hadn't pulled the patch so they didn't check out 'unpull'.

* One user lost his patches because he misunderstood 'unpull'
  in some way, but it is not clear how.

* One mail uses the word 'unpulled' meaning "patches in
  another repo not yet pulled to this repo".

So far I'd say 'unpull' isn't doing terribly bad.

* Many mails (didn't bother to count) complains about 'unpull'
  being an illogical/confusing/misleading name, although some
  complaints were repetitions from the same authors.

There is a disliking of the name 'unpull'.

* Many mails express how hard it is to understand the
  differences between unrecord/unpull/rollback.

This could be partly because 'unpull' means one thing but
does another.

Other significant problems related to 'unpull' were:

* Six users tried to 'unpull' after a conflict without
  reverting the conflict markers and wasn't helped by the
  message "darcs failed:  Couldn't commute patch past pending."

I suggest this message is extended with something about
"unrecorded changes (maybe conflict markers) try to revert".
Or is this problem going away with the new conflict code?

* Four users didn't understand how dependencies affects
  'unpull' and were surprised that they couldn't unpull some
  patch (two) or tried to "temporarily" unpull a depending
  patch to change a patch "underneath" it (two).

I will (some day) try to explain this in the basics docs.

So, my worry is that if 'unpull' is renamed to 'drop' or
something similar, more new users will find it, try it, and
lose some patches.  It is a very unexpected feature for a RCS
to let you do what 'unpull' does.  But it's also a very common
thing to want to do in darcs in place of 'cvs update -r'.

Maybe a good solution is to make 'initialize' put some
'--ignore'-s in _darcs/prefs/defaults (as suggested previously
by someone on this list), defaulting to (among other things)
disabling 'unpull' (or what it would be called) until users
are so clever that they can unset it.

But that would remove the whole point of the word 'unpull':
to let new users use a useful but sometimes dangerous command
in a safe way.

And it would be a mess to have a command named 'drop' that
was sometimes disabled unless it was invoced with the alias

Tommy Pettersson <ptp at lysator.liu.se>

More information about the darcs-users mailing list