Re: [Monotone-devel] Command design and naming?

From:

William Uther

Subject:

Re: [Monotone-devel] Command design and naming?

Date:

Sat, 24 Feb 2007 00:51:41 +1100

Hi,
I've re-ordered your email to respond in order of importance. :)

Quite honestly, I disagree. It took me about 10 minutes to read and
understand that you do your work against a local repository, then
transfer changes back and forth between your local repository and a
remote one. It took me a blink of an eye to see the elegance with
having a local copy of the history of what I was working on. All you
have to do is read the manual (not the man page, which has recently
been removed).

I agree that monotone is orthogonal and minimalist. I'm dealing with
a group of people here who have spent 10 minutes less than you
understanding monotone. They know the centralised model. They're
mostly working in a centralised setting. They only want to deal with
the decentralised model when they're actually doing decentralised
stuff. Monotone is close to supporting that, and if it can do so
_without losing much elegance_, I think that is worthwhile.

The current commands are not just a problem for people switching. I
think they make me type about three times as much as I need to in
many situations. A small amount of syntactic sugar in the right
places is a good thing.

It would be very possible to do what I'm suggesting with scripts.
But I think that other people are going to have the same issue(s). I
think many users are going to give up on monotone before they write
themselves scripts, which is sad, but I think accurate. I would like
to avoid that.

I'm noticing that you're very bent on specific branches, when the
argument to pull is a pattern and represents a set of branches, not
just one. I know that that you initially think that you only need
that particular branch, but then someone is branching from that
branch, and you wanna follow that as well, and so on.

This is a side issue, but no I'm not amazingly bent on specific
branches. I had simply noted that if you commit in one branch, you
don't expect your work in another branch to be synced. The syncing
itself isn't an issue. But once you've synced, you really should
merge, and I don't want to have to think about merging a branch that
I wasn't in the process of committing.

This is a very different use case to if you've explicitly synced.
Then you expect to be pushing a whole set of branches.

I'm skipping everything about option ii, since you said yourself that
it was overkill, and I agree.

Um, I think I said option iii was overkill and option ii was the one
I preferred. My option ii was very like what you suggested, but I
used the term 'remote' instead of 'super'. It is what I have just
finished implementing. Test cases tomorrow I think...

From the tone of your email I suspect that my email volume is
annoying you. I would like to avoid annoying people if possible.
Having said that, Monotone is a very nice VCS, but it hits people
transferring from other systems with a fair few gotchas. I have also
used a bunch of systems. I think monotone is great. I would like to
try and smooth out some of the annoying little catches. I think many
people here have been using it for so long they've forgotten the new
user experience.

If you think I'm too verbose, feel free to ignore me :). There
aren't that many patches I want to write, so volume should go down
soon. :)