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

Anthony anthony.briggs at gmail.com
Sun Mar 20 23:34:48 UTC 2005

On Sat, 19 Mar 2005 05:01:20 +0100, Tommy Pettersson <ptp at lysator.liu.se> wrote:
> The best thing would of course be if we had hard figures from
> new-user studies.  Then we could draw objective conclusions.

Well, I've been using darcs for a couple of weeks for personal
programming projects and I signed up to the mailing list a few days
ago, so perhaps I should weigh in. I've been using cvs and subversion
for a fair while now, but I like the idea of a distributed versioning
system, particularly for my pet programming projects, so I'm not
completely closed minded ;)

> * 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.

It's pretty clear what it does, even from reading the brief synopsis
in 'darcs --help'. The only problem that I've had so far with unpull
is with dependent patches. I had some, and couldn't figure out which
ones were stopping me from unpulling. Something in the message along
the lines of 'can't unpull - dependent on the following patches:'
would help speed things along. The other option is a '--force' option,
which would unpull everything that depends on the blocked patch, but
that seems kind of dangerous.

> 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.

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

I think the key issue for me is that there are a few commands with
significant 'semantic overlap', ie. they do similar things but
slightly differently. For example, 'darcs push|pull' and 'darcs
send|apply' do similar things, but use a slightly different mechanism.
I would imagine an easier way would be to use the same command, but
with different options; something like 'darcs pull patch_file.patch'.
I also don't get the difference between 'darcs send' and 'darcs diff',
which do the same thing, but basically use different patch formats.

A couple of other quirks:
- no local numbering, so instead of something easy like 'darcs diff
-r100:110', I have to specify the names of the patches.
- annotate's format seems pretty broken, even with --human readable or
--summary switched on. There are at least two meta lines for every
content line:

anthony at morlock:~/personal/genghis $ darcs annotate --human-readable
genghis.py | more
# File genghis.py created by [Genghis 1.0
# abriggs at westnet.com.au**20050214102722]  as ./genghis.py
# Following line added by [Genghis 1.0
# abriggs at westnet.com.au**20050214102722]
# Following line added by [Genghis 1.0
# abriggs at westnet.com.au**20050214102722]

# Following line added by [genghis1.6.5
# abriggs at westnet.com.au**20050214105651]

# Following line added by [Genghis 1.0
# abriggs at westnet.com.au**20050214102722]

What about something more like svn's 'blame' command? ie:

<revision no> <committer> <line>

much more readable, in my opinion. The only issue is how you'd list
the committers, but maybe shortening by splitting emails on '.' or '@'
to get unique names could work?

Anyway, those are my strongest observations.


 HyPEraCtiVE? HeY, WhO aRE YoU cALliNg HypERaCtIve?!
 aNthONy.BrIGgS at gmAiL.CoM

More information about the darcs-users mailing list