Tag Archive for 'Git'

Q&A With BCW Magazine

Here’s an interview I gave with Business Computing World (http://www.businesscomputingworld.co.uk/qa-david-richard-wandisco/)

Can you position SCM and SCCM technologies as you see them in relation to ALM in the wider sense?

WANdisco’s heritage is in distributed computing—our technology enables active-active replication over a wide area network. The first application we implemented this with was Apache Subversion to create Subversion MultiSite (a distributed, highly available and scalable Subversion implementation).

Over the past couple of years we have become a very active participant on the Apache Subversion open source project and we are keen to ensure that Apache Subversion maintains its position as what we consider to be the world’s leading SCM tool.

Recently we announced uberSVN an open ALM platform for Subversion. The uberSVN platform is a very easy to use, easy to implement and easy to extend inside a distribution of Subversion. We see SCM as a core component of ALM—it’s where the source code files are stored. So transforming Subversion into a platform that enables you to choose best-of-breed ALM components is a very natural and evolutionary step for us. We don’t believe that any single vendor can provide a complete, best-of-breed ALM solution.

Why would a firm choose Subversion over traditional SCM solutions such as Perforce, Serena or even products from HP?

I guess a better question would be “Why do firms choose or replace traditional SCM solutions with Subversion?” I guess this is because Subversion is open source and hence free, but it performs and scales in some of the most aggressive SCM environments on the planet where some of the traditional SCM products could not. Subversion now has over five millions implementations—how many do the traditional SCM’s have? Not even a fraction of that and that means Subversion must perform and scale in a huge amount of environments.

It sounds like WANdisco’s core technology could be applied across multiple applications. Are you looking at other areas?

Indeed our replication technology is generic and can be applied to other areas. Relational databases is one area we are investigating in our labs right now. Maybe next year we will be in a position to announce something more concrete around database replication/shared-nothing database clustering.

Is WANdisco actively supporting the development of Subversion?

WANdisco is a huge supporter of the Apache Subversion open source project in a number of tangible ways. We have dedicated committers on staff that we pay to only develop Subversion, we are a sponsor of the Apache software foundation and we produce Subversion binary downloads and make them freely available on our website. There was some controversy last year but that was ‘rabble-rousing’ by one of our competitors. The end result is that Subversion development on the open source project is very active again. There is a lot of energy on the project right now and that is good for the wider community.

Are there any clear trends in the SCM space?

Subversion is continuing to gain adoption in the enterprise and government organisations. That’s probably not entirely surprising given that, in product lifecycle parlance, Subversion is in maturity. As I said earlier it continues to replace traditional SCM solutions. I would also say that Microsoft’s Team Foundation Server (TFS) is also gaining traction and is probably in the number two position. We don’t see enterprises moving their source code to the cloud yet. That may change but we have see some of the tooling move there—just not the source code.

What’s the uptake been like for uberSVN?

I’d say things are looking healthy, we have thousands of installs in just over a month and the feedback has been very good. I have never seen so many product installs and that is a good sign that the product is very easy to install. We worked very hard to get a product that could be installed in less than five minutes and we will never trade that off for anything.

Are there any big announcements scheduled for uberSVN?

In July we are planning a major new product feature that will enable customers to very easily install third party applications. It’s a really cool feature that will change the way ALM software is delivered behind the firewall. We also have some partner announcements around software build and quality tools.

Is GIT a threat to Subversion?

Funny, I was talking about this only today with an industry analyst and he has the same conclusion that we have. Git has its uses but probably not in the enterprise. OK please listen, I know that statement will upset a bunch of senior developers who think that GIT solves everything but it really doesn’t.

If you think about it GIT actually promotes anti-social software development; development in small, disconnected silos is not how software is developed in the real world. Most software is developed by teams whose members have a variety of skills who need to see what each other is doing and that’s the fundamental reason why GIT is not a threat to Subversion in the enterprise. It’s fine for the development of the Linux kernel but that model doesn’t work for most companies.

Shaking-up Subversion by Listening to the User Community and then Committing to do the Work.

Today we announced the radical step to overhaul the Subversion project by actually fixing and improving several areas that Subversion users have been crying out for.

I know that this will generate criticism from fans of distributed version control (GIT) because some of the issues we are going to tackle are the stick with which they beat Subversion. I am sure we will face cynicism from some factions of the Subversion project, but in some cases this is because of commercial interests that are dependent on the perception that they are the ones developing Subversion.

As the saying goes: you can’t make an omelet without breaking eggs.

We are not doing this for direct commercial reasons. We are doing this to protect the future of Subversion. We are doing this because we care. We are doing this because we need to. We are doing this because it is the right thing to do.

I’m sure there are lots of questions. Here is a selection of those I have tried to answer:

What Does This Mean?  Are You Forking Subversion?

At this point, NO. We don’t believe that it is necessary. What we are doing is committing our resources to develop several features that both WANdisco and our user community believe are critical to both the long and short-term welfare of the Subversion project.

Hang on a Minute! Didn’t the Community Just Announce A Road Map?

Yes they did, but that’s pretty much all that happened (and that really pisses us off.) The commit logs (code committed by developers to the project) tell the real story. We are not happy with the volume, speed or participation on the project right now. Blogging, or answering questions on user lists are important, but so is writing source code. We also believe it’s unhelpful when certain unscrupulous committers decide to commit trivial changes in large files to simply get their stats up. That behavior has no place in any open source project; it’s a bad form and wastes everyone’s valuable time.

The requirements that we are committing to build, namely merging and branching, are not new.  Many of these have been in the mainstream and documented since 2007. I find it more than a little annoying that, given their importance to many Subversion users; these areas have not been tackled.

Yes, they are difficult. Yes, they will take time.  That is why a corporation needs to step up to the plate and commit to deliver.

What Does WANdisco Get From This?

We have a thriving business.  Almost all of our customers are Subversion users and, frankly, we’re biased. A bit like Henry Ford’s choice of car color, that’s how we see SCM: You can have any SCM so long as it’s Subversion. Do the math.  It is really simple: The more [happy] Subversion users – the more potential customers for WANdisco and, yes, then we make money.

Who Attended This Summit at the WANdisco Offices?

We invited in the region of 10 companies, representing the largest implementations in the world, some with up to 40,000 users. We selected the organizations based on a very significant vested interest and, due to their complexity; any problems or issues would be magnified exponentially. Of course, everyone had their own special requests that were very specific to their situation but there was also a common theme: branching and merging must improve.

I can’t name all those that attended but they are companies of similar standing to Intel and Juniper Networks.

I Would Like to Help, Can I?

Absolutely!

Hyrum Wright is managing this process he can be contacted at Hyrum.Wright(at)  WANdisco [dot] com. We will work with ANYONE.   In fact, we would prefer that this be a community effort. Time is of the essence. Let’s not waste time in endless debate.  Let’s act together.

Subversion is a Community. How is this Working with a Community?

Ultimately, the community will decide if this work will be accepted. When Google decided that httpv2 (awful name and description by the way) was a good idea they developed it and presented it to the community. It was not a fait accompli .  It made sense, so it was accepted. In this case, the requirements have been out there for several years. Subversion users have been tweeting, blogging and complaining about branching and merging. We held a summit to discuss what needed to be done with the Subversion users.  This was their number 1 requirement! We are doing this for the wider Subversion community.

Are You Guys Trying to Take Over The Subversion Project?

Subversion is an Apache project, ideally it should not be inside a corporation.

After This, Then What?

We are still calibrating the requirements, but one hypothesis may be to completely upgrade the backend of Subversion. This is definitely not the end – we still have lots more to do.

Why we got so heavily involved in the Subversion project..

First of all I should point out that WANdisco has products that enable Subversion to perform on various different scales. Subversion MultiSite products provide service over a Wide Area Network (WAN) while Subversion Clustering is our specialist Local Area Network (LAN) system.

Some of the large-scale implementations we oversee have as many as 40,000 users, 2,000 repositories and over 18 million transactions a day. Of course not all of our customers are on that scale, but quite a few are and obviously Subversion is pretty important to them. Actually, let’s not beat around the bush, WANdisco Subversion is critical to the vast majority of those clients – mission critical.

About 18 months ago we started to hear a few murmurs from sources within the industry, including some of those big implementations, that we should really be involved in the core development of the Subversion project.

Why? Well, what happens to most (if not all) volunteer-based open source projects is that they go though phases. The initial phase is the really cool phase – it’s a blank sheet of paper and you have a bunch of guys that basically say “OK let’s go climb Everest… and we’ll do it on a diet of coffee and pizza”.

So many of these projects never get off the ground because the guys that can do that have to be capable of climbing a huge mountain – people like Karl Fogel, Jim Blandy, Ben Collins-Sussman, Brian Behlendorf, Jason Robbins and Greg Stein. These are the kind of guys that would; (a) even conceive the idea of building a brand new SCM product from scratch and; (b) actually get off their arses to do it (the latter is much easier said than done!)

The initial goal of our project was, basically, to create a better mouse-trap than CVS. At the time CVS was the de facto SCM product. Much like Subversion is today.

The CVS project was beginning to resemble the abandoned Mary Celeste. The committers had simply moved on. There was no innovation and proprietary vultures such as Perforce, Accurev and Serena began to circle. Unfortunately (for them) Subversion was coming into view on the horizon.

Subversion had a couple of key features that were missing from CVS including Atomic Commits, efficient binary diff storage, versioning of symbolic links, web access via Apache and the open source license was not restrictive (unlike CVS), meaning vendors could take it and pretty much do what they wanted.

Sounds good, so why the concern?

Well the good news is that the initial phase was a raging success. The moment Forrester Research recognized Subversion as the sole leader in the Standalone Software Configuration Management (SCM) category in 2007 was the moment that everyone knew Subversion was it. The market from that moment was going to be IBM Clearcase and Subversion. Can you even imagine trying to be any other vendor in this market where one product is free and the other is IBM? Game-set-and-match you would think. Well, not quite.

Without corporate sponsorship you don’t tend to get key enterprise features on a product road-map. You’re probably familiar with these kind of projects – they usually don’t involve a UI and have labels like ‘LDAP integration’, ‘security’, ‘performance benchmarking’, and so on. Let’s face it nobody’s going to tackle those problems over a cold beer on a cold November evening. And that’s not a criticism of open source; it’s just the way things go.

And that’s really why we decided to get involved on the scale that we did.

We didn’t get involved to take the credit for creating Subversion. That credit goes to the guys I mentioned earlier.

We got involved to push the creation of a road-map and to tackle the trick un-sexy tasks that just need to get done. We have a fantastic team of open source engineers and we don’t interfere with what they do on a day-to-day basis because they are 100 per cent hired to develop Subversion.

WANdisco is now making some big improvements to the working copy that will be released in SVN 1.7. We are improving the JavaHL bindings so you won’t need to use the third party GPL SVNKit product. Subversion 1.7 is a very promising release that will see not only huge performance improvements but also the beginnings of features that some ‘GIT fanatics’ criticize us for.

The emergence of GIT has brought with it a breed of DVCS fundamentalists – the ‘Gitterons’ – that think anything other than GIT is crap. The Gitterons seem to think software engineering happens on their own island and often forget that most organizations don’t employ senior software engineers exclusively. That’s ok but it’s not how the rest of the market thinks, and I am happy to prove it: GIT, at the last look had less than three per cent of the market while Subversion has in the region of five million users and about half of the overall market.

The problem we saw was that the Gitterons were firing (cheap) shots at Subversion. Tweets like “Subversion is so [slow/crappy/restrictive/doesn't smell good/looks at me in a funny way] and now I have GIT and [everything works in my life/my wife got pregnant/I got a girlfriend after 30 years of trying/I won six times running on the blackjack table]. You get the picture.

So we decided to do something about it. We pointed out that shelving would enable, if an organization chooses, working in a disconnected mode. Oh boy did the Gitterons not like that. How dare we make Subversion better?!

Thankfully, Subversion has a very bright future and WANdisco is 100 per cent committed to it.  Our  team is led by Hyrum Wright, Subversion’s release manager since early 2008, and backed by others including Julian Foad, Philip Martin, Erik Huelsmann and Stefan Kung(TortoiseSVN).  They’re all very talented and dedicated to the task of making Subversion the best and last centralized version control system.

What a Git!

Linus Torvalds put the cat-among-the-pigeons after his rather clumsy attack on SubversionCVSPerforce and anything else that was specifically not a disconnected repository in a presentation to Google employees last year. Linus is of course obsessed with the Linux project to the extent that he thinks every company developing software should operate like the Linux project. His comments included:

  • Subversion has been the most pointless project ever started.
  • Subversion used to say CVS done right: with that slogan there is nowhere you can go. There is no way to do CVS right.
  • If you like using CVS, you should be in some kind of mental institution or somewhere else.
  • Bitkeeper is the only commercially available distributed SCM solution.

The trouble is of course that not all commercial companies operate like the Linux project, in fact very few do. The idea that software developers operate from within a remote cave, rather like a hermit in the middle ages, is more than a little far-fetched.

GitBitKeeperMercurial and Bazaar are collectively referred to as ‘Distributed Version Control Systems’ or DVCS for short. But are they really distributed? In a sense, yes they are. The distribution comes from the fact that they work offline and everyone can have a copy of the entire source tree on their local machine. This is a really cool feature if you happen to be working in a loose-knit environment where working in a prolonged disconnected mode is a positive advantage, for example exploring multiple implementations without disturbing the master repository.

The problem is that, at any one moment in time, there is no ‘golden-copy’ of the source code assets, except via unenforceable convention. This presents quite a large problem to most software companies who undertake continuous builds. Working in a prolonged disconnected mode is fine but what happens if your laptop is stolen at the airport? Not only have you lost your work but you also run the risk of someone having access to the entire source code repository.

This pretty much means that companies, much to Linus’s disgust, must adopt some sort of centralized source code repository or do they?

So I’m pretty biased. Actually, no, I’m very biased but I think WANdisco really is a distributed source code management system (for Subversion and CVS) I don’t think that having a centralized repository with distributed developers solves the problems of distribution either.

In the case of WANdisco every replica is a golden copy of the source code repository. The assumption WANdisco makes is that development teams are working collaboratively even across global teams, with continuous integration of their efforts. Here you get the best-of-both-worlds: performance of a local repository for the entire global team, with the manageability and continuous integration associated with central repositories.

Bottom line: Git, Bitkeeper, Bazaar and Mercurial should not be referred to a Distributed Version Control Systems – they are Disconnected Repository Systems and Subversion / CVS users do not belong in ‘some sort of mental institution’ but I would recommend that Linus get’s out of his virtual reality bubble before it completely seals.