[darcs-users] Command renamings and hide/show

Kevin Smith yarcs at qualitycode.com
Thu May 13 14:08:45 UTC 2004

Marnix Klooster wrote:
> Here is a number of things that would (in my opinion) be very good to
> have in darcs, most of them to make it more straightforward for first-
> time darcs users.

I like much of what you propose, but also do not want to delay getting a 
darcs 1.0 released. In particular, I suspect the ability to 'hide' and 
'show' patches would be much to big a change to make now.

I support many of your proposals to rename commands, but understand the 
problem of requiring existing users to learn new commands. On the other 
hand, such changes are *far* easier now than they will be after 1.0 is 
out. So if they have merit, we should accept the pain and change them 
now, not later.

A compromise might be to create aliasas. New users would be encouraged 
to use the new commands, and only the new commands would appear in the 
default --help screen. Existing users could continue to use the old 
versions, at least for a while.

> * Rename 'repository' to 'branch' throughout.  This makes the
>   terminology more consistent with CVS and other systems.  Then
>   explain that a darcs "distributed repository" is simply a collection
>   of branches that know of each other.

This definitely would have helped me grasp the idea that in darcs you 
probably will be creating new repos frequently. However, I agree with 
the other poster that people have negative connotations with branches. 
So I would probably leave it as 'repository' but continue to improve the 

> * Make the default to be as verbose as possible, and offer -q /
>   --quiet (this is the CVS style).  This helps beginners.
>   (Currently it's the other way around.)

Yes, probably.

I also still believe that --look should be the default, and definitely 
that whatsnew should use different flags for "to be added" (A) and "not 
in the repo but not scheduled for add" (?), like CVS.

> * The default should be that no patch is deleted without a warning
>   and/or special long command line argument.  (And the fact the
>   "unpull" is really destructive and the rest isn't is not really
>   clear from the name of the command.  So renaming is necessary.)

I think so.

> * It should be easy to temporarily get a patch out of the way,

I don't think this should be in 1.0.

>   get           "branch" or "mkbranch", with explicit option --and-
>                 pull. This indicates that a branch is created.  Giving
>                 --and-pull also allows all options of "pull" to be
>                 given.

I like having 'get' as a separate command from 'pull'. At least in my 
mind, one creates a repo, but the other one adds to an existing repo.

>   inittree      "branch --root" or "branch --trunk" or just "trunk" or
>                 something like that.  I mean, as far as I can see this
>                 is the only place where 'tree' is used, but this is
>                 not in any way related to the way 'branch' is used.

initrepo or just init or initialize might be better.

>   unpull        "unrecord --and-delete" or something like that,


>   revert        "hide --unrecorded", protected by a question
>   unrevert      "show --unrecorded"

Not yet.

>  * send->export and apply->import: this has more symmetry, and removes
>    the strange "send --output" combination.

Seems reasonable, but I don't have strong feelings about it.

>  * add->control and remove->uncontrol: this removes any confusion
>    between "darcs remove" and "rm".  (Or perhaps "ignore" instead of
>    "uncontrol", but that has less symmetry.)

Archipel uses "track" and "untrack", which I like. But I'm not convinced 
this needs to be changed.

Good ideas. Thanks for sharing them.


More information about the darcs-users mailing list