Proper tracking of file-level operations: rename, directories, merges

Martin Pool mbp at canonical.com
Wed Oct 26 00:40:45 UTC 2011


On 26 October 2011 05:05, Barry Warsaw <barry at canonical.com> wrote:
> On Oct 26, 2011, at 01:44 AM, Stephen J. Turnbull wrote:
>
>>When git and Mercurial were born, nobody had a clue about what a DVCS
>>UI should look like.

Funny you should say that, because Monotone predated and prefigured
both of them, and had quite an interesting approach to this, which was
to have a separate "automate" grouping of shell commands, that
presented a machine-oriented interface, parallel to the human-oriented
interface: 'mtn automate log' vs 'mtn log'.  The machine interface can
be more stable, and in a form that's easier to parse, and the human
interface can consider stability mostly from the point of view of
human learning and can be easy to read.

>>If the command line interface is stable, then anybody can help evolve the UI.
>>If you ask people to learn a huge library API on top of a new programming
>>language, almost nobody will.
>>
>>Also, you need to remember that scripting isn't just three-line shell
>>functions; it's fairly large programming systems like vc.el and magit.
>
> Oh, I totally get that.  Despite a stable API and strong recommendations to
> use it when extending Mailman, almost everyone still uses the command line
> programs.  Hopefully that will re-balance in MM3 with a stable REST API and a
> better separation of core logic and cli.  I certainly don't expect it to go
> away though.  #shell-hackers > #python-hackers.

Yep, true, and I think we will get further along that path in bzr too.

The other layer we want is something that's in Python but works just
like the command line interface, so people can do the equivalent of
they command line interaction.

m



More information about the bazaar mailing list