Subversion 1.7 Released with Some Git-esque Merging
The Apache Subversion (SVN) open source version control system is out with its 1.7 release today. The new SVN 1.7 release adds new features such as HTTPv2 and WC-NG that improve performance and make version control more efficient for developers.
The SVN 1.7 release comes at a time when the open source Git version control system is gaining in popularity. Git's popularity is something that SVN backers are aware of and taking steps to bring some popular capabilities of Git into SVN.
"Subversion is no longer the disruptive upstart that it was in 2005. It is now deployed in the largest and most traditional organizations, and it's now in the mainstream," David Richards, President and CEO of WANdisco told InternetNews.com
WANdisco is one of the companies that helps to lead the open source SVN project and is home to Hyrum Wright, the release manager for Subversion 1.7. WANdisco provides commercial Subversion products and services.
"This release of Subversion is all about addressing some of the large-scale performance opportunities that Subversion has," Richards said.
The WC-NG (working copy next generation) is one such scalability improvement in SVN 1.7. Richards explained that WC-NG is a rewrite of SVN's internals to create greater efficiencies in the way that data is stored. He added that in testing, WC-NG has provided SVN 1.7 with a performance boost. The WC-NG feature is also seen as a baseline technology on which SVN will build in the future.
The HTTPv2 capability is an improvement over the previous HTTP protocol that SVN had supported. With it, a developer can access an SVN server over an HTTP connection. The new protocol support is less chatty than SVN's earlier implementation, according to Richards.
"It's very good for enterprises that are dealing with large-scale transactions and remote users," Richards said.
Moving Towards Git
Subversion 1.7 also provides merge-tracking enhancements to make the process of merging code more efficient. One such enhancement comes from the isolation of subtree mergeinfo updates. The isolation will enable developers to restrict a merge to the specific subtrees that will be impacted by the merge, instead of requiring an update for all subtree merge information.
Going forward, work is in progress on something known as the newmerge that is more like the Git model of merging code. Newmerge will provide a client-side code merge into an SVN repository.
"The biggest complaint associated with Subversion is associated with branching and merging," Richards said. "The one feature that Git has that our users would really like is a really fast and simple merge."
Richards added that the fork and merge model is well liked in the Git community and it needs to come to Subversion. He noted that the newmerge feature is a feature that WANdisco is proposing to the community that would land in a Subversion 1.7.x release.
"It will take us between three and six months to deliver it, but it's something that our open source developers are currently working on," Richards said.
When it comes to seeing Git as competition for Subversion, Richards isn't too worried. Though Git is used by Linux kernel developers, GitHub and others, according to Richards, Git is not yet making its way into the enterprise.
"People like to polarize between Subversion and Git, but Git is really good for smaller open source projects, there is no doubt about that," Richards said. "Git works in cases when people are working on a branch model where developers are doing independent work that gets merged in."
That said, for large development teams, Richards argued that Subversion's central control provides more of what large enterprise development teams are looking for.
"It's not to say that Git won't make in-roads into the enterprise, it's just that today. We don't see it," Richards said.