Steering Subversion

When the Subversion project first launched, it was blessed to have something that many much older projects still lack: a clear direction. It would have been easy — and certainly the temptation existed — to try to make Subversion all things to all people. Why settle for "a compelling replacement for CVS" (which was the goal at the time) when we could shoot for "best-of-class version control"? "Next-generation SCM solution"? "All that and a bag of chips?" Here’s why: so the developers could get anything accomplished at all. It’s as the old Proverb says (though admittedly in a different context), "Where there is no vision, the people perish." Without a single, clear sense of direction, you’re left either meandering about with no sense of direction at all or (worse) stalemated by N senses of opposing directions. So how do the leaders of an open source software project choose a direction and set goals? And where do you, the reader, fit into all of this? Read on.

As I said before, Subversion originally had a vision of being a compelling
replacement for CVS and nothing more. And that’s exactly what Subversion 1.0
was. But where do you go when you’ve been operating with a single goal
in mind and then you reach that goal? Well, in Subversion’s case, the
1.0 target was never even considered as the last station on the
line. The developers always knew we wanted to push well past being a
mere replacement for CVS. Really, the sky was the limit on where we
could have driven Subversion. The project had already amassed a
feature wishlist from its own developers anxious to scratch their
version control itches and from early-adopting Subversion users. And
new ideas were popping up daily. So Subversion started picking away at
those features which seemed to its developers to provide the most bang
for the buck.

Meanwhile, our little software tool was finding its way into the
hands of a different class of user than we tended to interact with in
the open source arena. CollabNet packaged Subversion 1.0 into its
CollabNet Enterprise Edition software, and suddenly Subversion was
being adopted officially by segments of some rather large corporate
enterprises. Instead of being used to replace only CVS, Subversion was
displacing the likes of Microsoft’s Visual SourceSafe, Perforce, and
in some cases, threatening even heavyweights like IBM Rational’s
ClearCase. Those kinds of installations brought with them a whole new
class of feature and enhancement requests.

CollabNet — as the vendor which founded
Subversion, remained the greatest source of funding for its
development, and delivered Subversion to the Enterprise
— recognizes the value of clear goals. And it also
recognizes that one of the key benefits it can provide to the
Subversion open source community is the valuable feedback of its
customers, which tend to shy away from public discussion forums. CollabNet has over time helped the Subversion developers to
get a better sense of what its customers are looking for in an
enterprise-class version control system, mostly notably with its
activities around the requirements gathering, design, development, and
beta testing program for the merge tracking feature recently released
in Subversion 1.5.

Those of you familiar with the Subversion 1.5 release and the merge
tracking development process know that this was a beast of a
feature. Hard to define, hard to design, and hard to implement, this
flagship feature of the 1.5 release was somewhat all-consuming at
times. And the feature still isn’t completely finished. But as the
Subversion developers come up for air in the wake of the 1.5 release,
we find ourselves at that familiar place again — the
place where another major milestone is behind us and we’re looking forward
to the future. As always, there’s no shortage of wishlist items to
consider, and development is already well under way on some of those
things. But we continue to learn more about our users, about their
needs, about ourselves, and about what Subversion can and cannot do
today. And that’s where you fit in.

While it is true that sometimes programmers wish they could turn
off all the noise around them so they can focus on the task at hand,
Subversion’s developers have always understood that there’s usually
some signal in that noise, a thread of meaningful input that’s worth
attending to. Your participation in the Subversion development
community is vital to the continued success of this software. We need
and want to hear what you have to say about Subversion and how it does
or doesn’t meet your version control needs.

To that end, allow me to make you aware of a special opportunity
you will have to do exactly this. The second annual SubConf Subversion
user conference is being held October 14-16, 2008, in
Munich. CollabNet has worked with the conference organizers to arrange
for a special roundtable discussion session (to be held Tuesday
evening, the 14th) in which you, the Subversion user, can meet some of
the Subversion committers in person and share your experiences with
us. This is not a lecture-style session where we do all the
talking. We want to listen. This is a great way for those of
you averse to communicating in open source forums to make your
opinions and desires known. I’ll be chairing the roundtable session, and many of my colleagues will be present, too. We hope to see you there!

For more information on the SubConf conference, visit http://www.subconf.conf/ [German].
For information about the SubConf Subversion Roundtable, visit [German].

C. Michael Pilato

C. Michael Pilato is a core Subversion developer, co-author of Version Control With Subversion (O'Reilly Media), and the primary maintainer of ViewVC. He works remotely from his home state of North Carolina as a software engineer for CollabNet, and has been an active open source developer since early 2001. Mike is a proud husband and father who loves traveling, soccer, spending quality time with his family, and any combination of those things. He also enjoys composing and performing music, and harbors not-so-secret fantasies of rock stardom. Mike has a degree in computer science and mathematics from the University of North Carolina at Charlotte.

Posted in Subversion
2 comments on “Steering Subversion
  1. Unfortunately, I can’t come to your conference, so I’ll say it here:
    The 1.5 release is extremely good. Keep up the amazing work. Can I have one feature please?
    Local Branches
    I don’t think we need a fully distributed version of Subversion. In most corporations, distributed version control makes little sense. We just need 90% of the bang for 10% of the buck. The one nifty feature of distributed version control is the ability to *quickly* make local branches that we can revert or switch to.
    Now that we have half-decent merge tracking, the pain of having these won’t outweigh the usefulness of them.
    This would give us 90% of the bang for 10% of the buck, so to speak.

  2. David Aldrich says:

    Thanks very much for Subversion 1.5. I can’t be at Munich. How about setting up a survey of possible features and let people vote?
    A feature I would like is the ability to manage auto-props on the server side.

Leave a Reply

Your email address will not be published. Required fields are marked *