Re: Inversion Brian Behlendorf (
Mon, 17 Apr 2000 17:16:06 -0700 (PDT)

On Mon, 17 Apr 2000, Jonathan S. Shapiro wrote:
> This is the third time inversion has been mentioned here.

Hi - I've mentioned this to Jonathan before, but I thought I'd make a post here to let you all know what's going on.

Inversion is a part of a suite of development tools (actually, more like "groupware for developers", to make it clear that we're not going to get into language-specific IDE tools) of which we, Collab.Net, are funding the initial development. The code-name for that suite is "Tigris", like the river in Iraq, one of two rivers around which it is said civilization was born. All this software will be released under an open source license, either the Apache 1.1 license or the GPL (if necessary).

The intent for the first stage of this development is to focus on the basics: version control, email communications, and bug databases. Our bootstrap collection of these tools was CVS, qmail/ezmlm, and Bugzilla, respectively, plus some assorted other tools like cvsweb and mhonarc. The administrative interface is implemented using Java servlets, with the idea that you should have one interface to the entire suite: so that developer logins are consistant across all services, so that when one creates a new "project" that the appropriate mailing lists and bug databases are created, etc. We would also like to see each of these tools become usable independent of the others in the suite, so one could install just the bug database tool or the version control system.

We knew all along that these bootstrap tools would be replaced; what surprised us was how quickly they fell down. =) CVS is a champ, but I don't think anyone would argue it's a couple years past its prime, so now is the time to talk about reworking it. To that extent we've hired two developers to focus on it full-time, Karl Fogel and Ben Collins-Sussman. Red Hat has also volunteered Jim Blandy to help us out.

It's true, there is no code in this project yet. It's only a few weeks old, and that's primarily why we have been rather quiet about it, mainly because other than some expert review of the specifications, the real benefit from being public about a project comes after there is at least *some* code to test drive and enhance. While there is merit to debating the specifications and requirements, I really really really do not want to see development discussions devolve into, for example, flame wars between python, perl, and scheme advocates (especially when a well-designed system won't have to care a whit what language the clients and servers are programmed in).

The URL for Inversion is It's not publicly linked from yet. There is also the possibility the name will change this week to "subversion", a name we all like better, so adjust the URL appropriately. I would invite you to check out the requirements doc being worked on, it's in the CVS tree (you can get to through CVS directly or cvsweb), and if you see something interesting comment about it on the development list ( will get you on it).

I do not want to usurp the momentum behind Jonathan's project in the slightest; I firmly believe that a healthy ecosystem has competition between species. But I'd like to make sure if our projects are different, it's really because we have differing goals. What is our goal? Pretty pragmatic - to build a tool that fixes most of what people complain about with CVS, using the advantage of a clean slate. Simplicity is really important here - so right now we're not focusing on distributed repositories a la Bitkeeper, for example. But it should be in the back of our mind so it's not impossible to consider adding it later. Backwards compatibility for all the hook scripts in cvs is *not* a design constraint, for example.

> If the web site is accurate, then the answer is:
> (a) We should keep in synch with them and consider merging the efforts.
> (b) Until there is code, inversion does not exist for purposes of advancing
> the EROS effort.

I think that's completely reasonable. That's why I'm on this list. =)

I would invite you all to subscribe to at least the inversion announcements list, and to the dev list if you're interested, knowing there's not much there now. We would love your comments on the specifications though.