On Friday 05 December 2008, Trent W. Buck wrote:
> I considered that use case, and in my initial post I mentioned that
>
>     darcs put x:y
>
> amounts to
>
>     ssh x darcs init --repodir y
>     darcs push -a x:y

This is a very poor user interface. A program should not rely on external 
shell scripts to do a fundamental operation (like copying a repo in one 
direction or another). Using the same argument we can remove get 
altogether since one can darcs init & darcs pull. I don't find this 
argument convincing.

> IMO this use case is not common enough to warrant a whole new command

Here we disagree. You cannot know how common this use case is. The fact 
that you never use it doesn't mean none else does.

> just to save one line, particularly since it doesn't NEED to be
> implemented within darcs -- it can be implemented as a shell function.

See above. A program should provide a complete user interface to its 
functionality, not rely on external scripts.

put is the opposite of get, and IMO they both should be available, both 
for symmetry reasons, and for my ability to do a repo copy operation in a 
single step, not by logging on the remote machine and going the reverse 
operation (get in this case)

> I'd like to minimize the number of visible commands, because new users
> don't know which commands are "important" and which are for "edge
> cases".  If "edge case" commands aren't listed, the user can focus
> more easily on the "important" commands.

darcs has around 35 commands (maybe a bit more in 2.x). Comparing that to 
other version control systems who have between 75 and over 100, I'd say 
the user interface is very clean. But removing command symmetry will not 
make it more user friendly or simpler. People will wonder why they can do 
an operation but not the opposite operation.

IMO put is as important as get. They are 2 sides of a coin. You cannot say 
put is not important but get is.

> > Despite its warts I think put should stay and remain documented. It
> > fills a small but important niche.
>
> I suggested hiding it as a compromise.
> Note that "darcs put --help" will still work.

I disagree. Hiding information about how a program operates is bad. Having 
hidden commands is bad. If they are there for just a select few who know 
the internals they are useless. There are already hidden commands in 
darcs and I can't say I'm happy about the concept.

-- 
Dan
_______________________________________________
darcs-users mailing list
darcs-users@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to