monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] Is there something like libmonotone?


From: Andreas Känner
Subject: Re: [Monotone-devel] Is there something like libmonotone?
Date: Fri, 28 Jan 2005 09:28:25 +0100
User-agent: Opera M2/7.54 (Linux, build 751)

I have never contributed to this mailing list before but I have been lurking for quite a while now. I'd like to start by saying that I appreciate the work done on Monotone and I think that it has a great basis for success. Making a libmonotone is something that I have desired for a long time and even started the process of figuring out how much work would need to be done to make it happen. If I didn't have a day job I'd probably have already done it =). See comments below.

Nathaniel Smith wrote:

On Thu, Jan 27, 2005 at 01:01:56PM -0600, Matthew A. Nicholson wrote:

Andreas K?nner wrote:

is there something like libmonotone? Just in case someone want to write a GUI on top of monotone...

I don't think there is a libmonotone, but there should be...


This is actually a matter of debate :-) In particular, graydon has
pointed out that you really _want_ monotone to be a monolithic program
with an extremely limited and well-defined interface to the rest of
the world, because monotone is the only program we trust to manage
your database without screwing things up.  (we have enough trouble
making sure monotone won't screw things up in the first place...)

I don't think that monotone has to be a monolithic (command line) program to ensure the security that you are referring to. The library interface could provide an equivalent interface to the current command line. I don't think that the original suggestion was to make ALL of monotones implementation details available in the library.

This does leave open the possibility of wrapping a library around it,
with some carefully designed interface, but since this interface
wouldn't be much lower-level than the current command-line interface,
and since the command-line interface is accessible from all languages
(not just C++), my suggestion would be to improve the command-line
interface's support for automation.

There are many reasons why wrapping a command line program to make a library are not as good as a regular library. A significant portion of the wrapping involves text processing, which is slow and buggy. Any slight change in the output can cause problems that are not immediately noticeable. A library interface would make it nearly trivial to add IDE integration to monotone ( I could almost guarantee that I would write an Eclipse plugin for it within a week ). Another issue with command line parsing and complex scripting is that the output desired by the scripts is probably not the same as the output desired by a human. The library interfaces allows programming languages to use monotone at a level that makes sense for programming and frees the monotone executable to provide a good user interface without concern for scriptablity.

I agree with you in every sense.
I've tried monotone on my own for a small project and I think it would be exactly the right system for our small developing firm, because one of us works at home and has a slow internet connection. Therefore Subversion, which needs a central server, wouldn't make sense. The problem is that I have to convince my colleagues to use Monotone too. We all develop on Mac OS X. On this system the terminal isn't really the natural way to do things (For example: a Subversion client is build into XCode, the main IDE on Mac OS X). I don't think that we need such a tight integration. A standalone GUI thats wrapps Monotone would be enough. I will develop such a GUI, but at first I want to ask how to wrap calls to Monotone the right way.

Maybe someone from the core development team can explain how much work it would be to build a libmonotone or a XML interface?

Andreas


There's definitely a lot that could happen to make monotone more
scriptable, and I think we definitely should; I figure the best way to
accomplish that is to wait for people who want to script monotone,
then extend it in whatever ways they turn out to need...

-- Nathaniel





_______________________________________________
Monotone-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/monotone-devel





reply via email to

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