> > [EMAIL PROTECTED] - Wed Jul 27 13:44:48 2005]:
> > > Hi,
> > > 
> > > I'm a new darcs user.  darcs is very cool.  At least 3 times now I've
> > > been confused because I needed to unpull, but hadn't pulled anything.
> > > Maybe you should change the name.

This bug report was sent by my wife (a computational linguist).  She later
ran "unpull" on a patch which she intended later to repull, thus losing her
work.  (She mentioned this event in a later message on the bug report thread, 
I believe.)

That same week, I described the "unpull" naming issue to my two brothers (a
computer scientist and a bioinformaticist, and both novice darcs users).  They
strongly agreed with my sentiment that the name "unpull" was wrong, and when 
I suggested the alternative name "erase-patch", they immediately agreed that
this would be a good name.

As another data point (which I have already mentioned before), my former boss,
Phil Zimmermann, the famous cryptographer, experienced a frustrating five-minute
confusion once when I told him that I intended to "unpull" a patch, and he kept
asking "unpull it from where to where?".  Finally I realized why we were
talking past each other and I said "The name 'unpull' is a misnomer, I mean
that I am going to erase the patch.", and he immediately understood what I was
proposing to do.

So I suggest "erase-patch" or just "erase".  In the latter case it should be
disambiguated from "revert" by the --help text.

I know that currently the darcs commands are bare verbs without nouns, and 
I appreciate the beauty of that, but perhaps part of the problem that we are
facing here is that novice users aren't sure which commands will effect local
edits (e.g. "revert") and which will effect patches (e.g. "erase" or
"obliterate").  You can see how the implicit nouns could easily go the other
way -- it could have been the case that "revert" would eliminate a patch from
history and "erase" would eliminate unrecorded changes from the current working
directory.

Hm.  This makes me think that "obliterate" is better than "erase" for this.

I also suggest that the name "unpull" be deprecated, as per David Roundy's
sensible objection to the proliferation of aliases.  (And despite David's
apparent affection for the name "unpull". ;-))


> You never actually need to unpull, since unrecord followed by revert is
> identical when there are no local changes.  If there are local changes,
> then record -a, unrecord, revert -a, unrecord would have same effect as
> unpull.  And this is what I'd want a newbie to do--if they work in this
> manner, they are unlikely to accidentally lose their changes.

Good point.  In the same way that "amend-record" has a somewhat more awkward
name than most commands and is not recommended to newbies, perhaps the
awkwardness of "obliterate-patch" will be an advantage.


Hm...  I'm thinking back to the question of how it was that my wife, a novice
darcs user, became sufficiently familiar with the existence of "unpull" that
she would later accidentally misuse it.  The answer is that she needed to go
back into history to an earlier version of her code such that it didn't have a
certain set of patches.  I suggested to her that she copy the repo with "darcs
get" and then run "darcs unpull" on the patches she didn't want.  If their had
been a similarly convenient way to do the operation of "copy the repo except
for these patches", then I would have suggested that to her instead and she
never would have learned about the existence of unpull.


Regards,

Zooko

_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://www.abridgegame.org/mailman/listinfo/darcs-users

Reply via email to