monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] Command design and naming?


From: William Uther
Subject: [Monotone-devel] Command design and naming?
Date: Fri, 23 Feb 2007 16:14:03 +1100

Hi all,

In my copious free time I'm going to start hacking on monotone. The itches I wanted to scratch involve making it easy to use for people who are used to CVS or Subversion (see http://venge.net/mtn- wiki/WishList ). In particular, I want to introduce three commands that:

A: For checkout:  mtn pull branch && mtn checkout
B: For commit: mtn commit && mtn pull branch && mtn merge && mtn push branch
C: For update:    mtn pull branch && mtn merge && mtn update

There are two questions I have. First, are there any suggestions for tweaks to those commands? Then the important one... what to call the commands :).

A is "clone".  The question is really about the other two.

Option _i_. Rename commit to local-commit, or lci. Rename update to local-update, or lup. Then use 'commit' for B and 'update' for C.

Option _ii_. Use 'remote-commit', or rci, for B and use 'remote- update', or rup, for C.

The choice between these two depends on your personal tradeoff between: Having current commands not change which is easy for current users, but a larger change for switchers from other VCSs (Option ii). Or, have current commands change name which is a change for current users, but easier for switchers from other VCSs (Option i).

There is one other issue. If we use either of the above naming schemes, then there is still somewhat of a naming mismatch. 'commit' and 'remote-commit' don't just differ in their use of the network. They also differ in whether they 'merge'.

Option _iii_. Rename 'commit' to 'wc-store', and 'update' to 'wc- grab' (better names would be appreciated). Then make the following new commands:

 A: mtn clone == mtn pull branch && mtn checkout
 B: mtn local-commit (lci) = mtn wc-store && mtn merge
 C: mtn local-update (lup) = mtn merge && mtn wc-grab
D: mtn remote-commit (rci) = mtn wc-store && mtn pull branch && mtn merge && mtn push branch E: mtn remote-update (rup) = mtn pull branch && mtn merge && mtn wc- grab

Then plain 'commit' and 'update' could be either local or remote depending upon a lua hook.

But that might be overkill. I'm leaning towards option ii. What are your thoughts?

Oh, and if I implement option ii (or other option if it is popular), is there any chance of it being committed?

Be well,

Will       :-}






reply via email to

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