On Fri, Dec 05, 2008 at 06:15:34PM +0200, Dan Pascu wrote: > 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.
That's not the case, because get actually *does* do something more than just init + pull. It handles --lazy and creates the pristine tree all at once, rather than "building it up" from the patches. >> 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. I do use it. I just don't do so *commonly*. Pushing, pulling, sending patches, and creating local branches are things I do many times every day; uploading a repository to a remote host is something I do around thrice per project. >> 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. Is that an argument for removing "darcs diff"? >> 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. Agreed, but that doesn't mean there is no room for improvement. > 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. If put was efficient -- particularly for local branching -- then I'd be more inclined to agree. The current implementation doesn't do anything like get, it is *just* an init and push. That's why they aren't currently symmetrical. _______________________________________________ darcs-users mailing list darcs-users@darcs.net http://lists.osuosl.org/mailman/listinfo/darcs-users