On Fri, 2007-03-16 at 12:26 -0400, Nicolas Pitre wrote: > Sure. But the output from an executable is a damn good abstraction and > the executable itself is an impenetrable boundary. Anything can change > (and did change) underneath. Strictly speaking, you can use opaque structures for commits and so on (so that the outside world will only ever see a pointer), and use some getter/setters for commonly used stuffs (like datum, title, content). Also, I guess what people would expect from a C library is roughly the same as for the current plumbing... just easier to use from another program. It doesn't need a low-level access to data structure (most applications would be to interact with an existing repo or to store data for a third-party software, something that is high-level) and I don't think such an opaque API would be a huge constraint as soon as you keep the Object/Index/Tree/Commit/etc basic opaque structs. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html