monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] Re: New commands (for mtn, in lua)


From: William Uther
Subject: Re: [Monotone-devel] Re: New commands (for mtn, in lua)
Date: Thu, 6 Sep 2007 08:17:19 +1000

One of the reasons why I've switched over to monotone is that it seperates very cleanly between network commands and non-network commands.

Exactly! Please keep separate things separate. And KISS, instead of trying to figure out automatically what the user wants.

In my case, I certainly don't want to trigger a sync before each and every update.

I was trying to think of the use case for update without a prior sync. It seems that this is it: if you have lots of projects/ branches in a single database, then you might sync once and then need to update many workspaces from the sync'd repository. You don't want to sync for each update.

This contrasts with the other system where pretty much each workspace has a separate DB. An update without a sync in this cass is usually a noop. You want a sync with each update and it seems silly that you have two commands for the one mental action.

In any case, it seems there is a need for both. Moreover, it seems that both use cases could be quite common - you don't want either group to have to use an option every time they update.

This is why I suggested/implemented a "remote_update" command with an alias to "rupdate" (which would allow "rup" as a shortened form too). The 'up' command is a local update, and the 'rup' command is a remote update.

Re KISS. Everyone considers an orthogonal command set the ultimate in KISS - one command for each basic action. But that is not the only important goal. You want the orthogonal commands aligned with what the user frequently does. (If this was a true vector space, then there are many orthogonal bases for the space - each rotated or stretched from the others. Some are better than others for particular problems. In general you want to pick one aligned with your principle directions. Think principle component analysis - aligning the basis with the eigenvectors of the space.)

Given a choice between a truly orthogonal command set, and a command set that aligns well with the really common use cases (with commands for the rarer use cases being orthogonal), I'll take the well aligned set.

Be well,

Will        :-}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]