[Top][All Lists]
[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 :-}
- [Monotone-devel] Command design and naming?,
William Uther <=
- Re: [Monotone-devel] Command design and naming?, Richard Levitte - VMS Whacker, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, Ulf Ochsenfahrt, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, William Uther, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, Thomas Keller, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, hendrik, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, Alex Queiroz, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, hendrik, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, Richard Levitte - VMS Whacker, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, hendrik, 2007/02/23
- Re: [Monotone-devel] Command design and naming?, William Uther, 2007/02/23