Tag Archive for 'apache Subversion'

Commitment to the Cause

“There’s a difference between interest and commitment. When you’re interested in doing something, you do it only when circumstance permit. When you’re committed to something, you accept no excuses, only results.”

I think it’s a wonderful quote, primarily because it’s true.  There really are only two options regarding commitment, you’re either in or you’re out. There’s no such thing in life as inbetween.  WANdisco is very much “in” when it comes to Apache Subversion.

Today we made a couple of very important announcements.

  1. We upped our sponsor level of the ASF from Bronze to Silver.
  2. We increased the number of full-time subversion committers by hiring two of the most experienced Subversion engineers in Branko Čibej and Stefan Fuhrmann.

The ASF is a non-profit, volunteer-run foundation and this will help aid organizational, legal and financial support for a broad range of Apache licensed projects including Subversion. We continue to be extremely grateful to the ASF.  This is a ‘safe home’ for Subversion.  Apache have led the way in community open source development since 1999 and they are no stranger to mature, pervasive open source technology like Subversion.

Branko and Stefan are two wonderful software engineers with lot’s of experience in the SVN community.  Branko has been involved in the project since 2000 and he has always worked on some of the most difficult and complex problems.  Karl Fogel told me a long time ago that he could really help deliver the branching and merging improvements we hope to make.

Stefan has worked on the Subversion client TortoiseSVN since 2003 and now spans both client and server.

I think this is great news for the community as a whole.

This announcement coincides with the second year of our Subversion Live Conferences.

The first year we ran the events they were a huge success.  It presented a unique opportunity for Subversion users from a wide spectrum of organizations to interact with each other and the core Subversion developers.  Registration is now open here:  http://www.wandisco.com/svn-live-2012

avatar

About David Richards

David is CEO, President and co-founder of WANdisco and has quickly established WANdisco as one of the world’s most promising technology companies. Since co-founding the company in Silicon Valley in 2005, David has led WANdisco on a course for rapid international expansion, opening offices in the UK, Japan and China. David spearheaded the acquisition of Altostor, which accelerated the development of WANdisco’s first products for the Big Data market. The majority of WANdisco’s core technology is now produced out of the company’s flourishing software development base in David’s hometown of Sheffield, England and in Belfast, Northern Ireland. David has become recognised as a champion of British technology and entrepreneurship. In 2012, he led WANdisco to a hugely successful listing on London Stock Exchange (WAND:LSE), raising over £24m to drive business growth. With over 15 years' executive experience in the software industry, David sits on a number of advisory and executive boards of Silicon Valley start-up ventures. A passionate advocate of entrepreneurship, he has established many successful start-up companies in Enterprise Software and is recognised as an industry leader in Enterprise Application Integration and its standards. David is a frequent commentator on a range of business and technology issues, appearing regularly on Bloomberg and CNBC. Profiles of David have appeared in a range of leading publications including the Financial Times, The Daily Telegraph and the Daily Mail. Specialties:IPO's, Startups, Entrepreneurship, CEO, Visionary, Investor, ceo, board member, advisor, venture capital, offshore development, financing, M&A

That Was the Year that Was – uberSVN & All That…

I suspect that I will always remember 2011 as the year when the curtain came down on one of the true greats – Steve Jobs. Great, not just in my world of Silicon Valley techies, but great for just about everyone else on the planet. Even though most of us never knew him we feel like we must have. We seem to use his stuff just about every day.

Apple’s success has had and will continue to have a massive impact on the design of computer systems and products. When we were thinking about uberSVN the very first thought we had was about the relationship between the product and the user. Ten years ago I don’t think that would have been the case. I guess you could call it ‘the pre-iPod days’ (the first iPod was released in October 2001 and was cast as “1,000 songs in your pocket”) before that, according to Jobs, music players were either “big and clunky or small and useless”.

Our customers told us that ‘old fashioned’ ALM was big-and-clunky; and they’re probably right! In many cases they were moving away from these ‘dinosaurs’ to a best-of-breed approach. Like Subversion for source control, JIRA, Redmine or Trac for defects & wiki, Review Board for peer code reviews, and so on.

When we launched uberSVN in April I talked about empowering users by giving them choice. Freedom to choose any combination of ALM tools that best fit the business requirements be it price or functionality, open source or closed source. How’s it doing? In short – amazingly well! To our delight it’s being used everywhere from Fortune 100 companies to the US Senate. I even got my 11 and 12 year-old children to install it on their MAC books – it took them only 5 minutes! Not sure how much use they get out of Subversion – but they did get double pocket money for their efforts! That really is the point of uberSVN. We have made an extremely powerful but complex product extremely easy to use and install by anyone and I think we succeeded in that regard.

We quickly followed-up with uberApps. Another ‘first of a kind’ product with an enterprise AppStore for software development tools. Now, with just a single click, it is possible to install a build & test product like Jenkins or even buy external QA resources from crowd-sourcing vendor uTest. This is another step in making ALM both usable and useful. Anyone, and I mean anyone can deploy these apps without special knowledge, experience or skills.

These products were developed in my hometown, Sheffield. It was our Christmas party there the other week and it really was astonishing to see how quickly we have grown. From a small office where we would “see what happens” we have grown to almost 40. There was a lot of laughing behind hands from my ‘friends’ from the south and lot’s of “ooop north” jibes. Well, in between wearing flat caps and racing whippets, the Sheffield team delivered an award-winning piece of software. uberSVN won 2 awards in the first year of its launch and we have seen almost 50,000 downloads.

Apache Subversion also continues to grow. Subversion is still the ‘King’ of source code management. More traditional Enterprises are turning away from old-fashioned / big-and-clunky ALM for Subversion. And SVN 1.7 (also released this year) has delivered a much-needed performance boost. Throughout the year I have been embroiled in various spats with the Giterons (Git fundamentalists who believe in the inerrancy of Linus) but only this month I have spoken to 3 or 4 companies that tried Git but had to pull it out due to various-and-sundry issues. Much more on that early in the new year, when we might just have a solution for those looking to use Git as more of a client to a central SVN server of record…

There was also some politics earlier in the year when one of our competitors used some pretty underhanded tactics to besmirch our good name. Unfortunately for them it worked quite well in our favor. We are, and always have been a big supporter of the ASF (we are even the only Subversion contributor to also be a sponsor). In fact, at the time of writing, we are in the process of proposing a new project for the ASF incubator. Again, lot’s more on that in the new year.

We also took some steps earlier in the year to solidify the Subversion community by acquiring SVNforum.org. I think we have done a pretty good job of updating the site software, Subversion Liveeradicating spam and generally making the site a useful, free resource for every SVN user. As part of our efforts for the SVN community we also hosted the first Subversion user conferences. Audiences in San Francisco, Boston and London attended “Subversion Live”. We are hosting Subversion Live again later in the year with a extended program.

So 2011 was a great year here at WANdisco but 2012 should be even better. We have several major product launches planned including a new (free) open source defect tracker / wiki, uberSVN Team, uberSVN Enterprise and a solution to the Git/SVN conundrum. In the words of ‘Potato Claus’ (the lead character in my kids’ favorite book from a few years ago) may I take this opportunity to wish everyone Happy Christmas, Kwanzaa, Chanukah, Winter Solstice, and also local and regional winter holidays and celebrations.

Here’s a rather nice pictorial representation of 2011 from a WANdisco perspective (click to enlarge):

avatar

About David Richards

David is CEO, President and co-founder of WANdisco and has quickly established WANdisco as one of the world’s most promising technology companies. Since co-founding the company in Silicon Valley in 2005, David has led WANdisco on a course for rapid international expansion, opening offices in the UK, Japan and China. David spearheaded the acquisition of Altostor, which accelerated the development of WANdisco’s first products for the Big Data market. The majority of WANdisco’s core technology is now produced out of the company’s flourishing software development base in David’s hometown of Sheffield, England and in Belfast, Northern Ireland. David has become recognised as a champion of British technology and entrepreneurship. In 2012, he led WANdisco to a hugely successful listing on London Stock Exchange (WAND:LSE), raising over £24m to drive business growth. With over 15 years' executive experience in the software industry, David sits on a number of advisory and executive boards of Silicon Valley start-up ventures. A passionate advocate of entrepreneurship, he has established many successful start-up companies in Enterprise Software and is recognised as an industry leader in Enterprise Application Integration and its standards. David is a frequent commentator on a range of business and technology issues, appearing regularly on Bloomberg and CNBC. Profiles of David have appeared in a range of leading publications including the Financial Times, The Daily Telegraph and the Daily Mail. Specialties:IPO's, Startups, Entrepreneurship, CEO, Visionary, Investor, ceo, board member, advisor, venture capital, offshore development, financing, M&A

Top 10 Reasons to Try uberSVN

Launched in April, WANdisco’s uberSVN platform is a major new product designed to transform the world’s most popular source code management system into an open, extensible platform for ALM, empowering Subversion users by giving them the widest choice of toolsets with no vendor lock-in. With uberSVN, WANdisco set out to give developers exactly what they want: an easy-to-install, easy-to-use open ALM platform for Subversion, that they can extend however and whenever they choose, crafting their own complete, best-of-breed ALM solution. In this post, we’ll run through the Top 10 reasons to give uberSVN a go today:

1) Easy to administer:

The uberSVN dashboard is divided into four main areas, giving you an insight into the overall status of your Subversion implementation’s servers, repositories, and all the users’ latest activities.

  • Tabs – These allow you to drill down into the individual repositories, users, and teams.
  • Activity Stream – This is where all messages and changes to the repositories are displayed. Actions displayed include: when a user commits to a repository, or makes administrative changes to a user or a team. Social actions, such as team members’ comments on postings and activities, are also displayed.
  • List of repositories – This is where you can view all the repositories that have been added to uberSVN.
  • Quick Links – This is where you can define quick links to both specific areas within the repositories, and to outside applications that are part of your development lifecycle.

2) Easy to collaborate:

uberSVN works on the concept of ‘teams;’ allowing groups of people to be assigned certain access privileges. Working in teams in uberSVN has the following benefits:

  • Easy to add new members. Once you’ve defined what a team can do inside specific repositories, you never really have to define user access again. When adding a new user to an existing team, they will automatically be assigned the relevant access privileges.
  • Easy to change access controls. A large organisation might have dozens of teams, each with different access controls to different repositories. Traditionally, changing access control for one team, would require each team member’s privileges to be altered individually – an administrative nightmare! With uberSVN, not only are access privileges easier to setup, they are easier to control, as you can assign and remove entire teams from a repository.

3) Easy to Manage Multiple Repositories:

In today’s organizations, it’s common for development teams to be working on multiple projects, across multiple repositories, and uberSVN’s filtering system helps you keep on top of this. With uberSVN, you are always looking at a defined set of information; for example, information about all the users, all the teams, etc, that relate to a repository. If you then select a particular repository, you can view all the commit messages, comments, users, etc, that relate to that repository. By helping you manage and organize information across multiple repositories, uberSVN keeps you from getting overwhelmed. Of course, all of this information (save for the comments made within uberSVN’s social coding environment) could be gathered from the log information in a repository but, crucially when dealing with multiple repositories, uberSVN lets you drill down to the information that is most relevant to you.

4) Freedom to Choose:

Previously, Subversion users have had two options when extending Subversion into the ALM sphere. The first, is to go with a closed source ALM solution that leverages Subversion for version control, but imposes a vendor lock-in. The users have no freedom to tweak the implementation to suit their own needs, and when their requirements evolve beyond the vendor’s specific solution, it has to be replaced entirely. A hand-crafted solution assembled from a variety of components, does give the users the freedom to tailor a solution to suit their particular needs, but this freedom comes at a cost:

  • a lack of integration. There is no guarantee that the product will work throughout the development lifecycle, or will interconnect with all the other elements of the software system.
  • a lack of documentation.
  • no professional support option.
  • they rely on brittle, home-grown scripts that require no specialist knowledge to maintain.

uberSVN aims to give the developer all the freedom of a homegrown solution, but with the support and integration you’d expect from a closed source ALM solution. With uberSVN, developers can:

  • replace specific components as requirements evolve, or as better tools become available.
  • choose from both open and closed components.
  • stick with their own open or closed source defect trackers, build servers, etc, even if an alternative is available in the Apps store.

5) Social Coding Capabilities:

uberSVN combines Twitter and Facebook-like capabilities, to provide a social coding environment out-of-the-box and bring social networking functionality into your development environment. In uberSVN, each development team has its own home page with profiles of the team members and information such as the projects they’re working on and the repositories they’re using. This functionality is particularly useful in modern IT organisations, where development teams tend to be working on multiple projects, on multiple repositories. Not only does this enable team members to keep track of one another’s real-time progress across all repositories, but managers can leverage uberSVN’s social coding capabilities to keep track of the status of projects. There is also a chat facility for instant communication.

6) Integrated App Store:

We know that there’s no shortage of tools out there, but we also know that you don’t always have the time to define the applications that will add the most value to your Subversion experience. Therefore, uberSVN comes integrated with uberApps; a one-stop shop for software development lifecycle applications for the enterprise. We have tested the integration and installation of every tool in the app store for you, so every application comes pre-certified to integrate with the uberSVN platform, without the hassle of testing it yourself.

With one-click to purchase and one more click to install, simply select the tool you want from uberApps, select the install button, and you’ll be guided through installation. This is a streamlined version of the traditional installation process; for example, if you wanted to install Jenkins, usually you would visit the Jenkins CI site, install it on your machine and run a Java jar on the war file. Now, Jenkins is available straight from the uberApps store. And, if you need some extra help, WANdisco provide professional support services, and are your single port of call for assistance with either uberSVN, or any of the applications downloaded from uberApps.

7) Easy to Install:

With a GUI-based installation and no prior Subversion experience assumed, uberSVN is designed to be easy to install. On the installation screen, simply specify your installation settings, including your:

  • installation directory.
  • the directory located in your first Subversion repository (more can be added at a later date through the “create repository” option in the admin console.)
  • uberSVN License Key

And that’s it! Although uberSVN is designed to be easy to install, Subversion experts can easily change the model configuration to suit their own particular needs.

8 ) Support:

Homegrown solutions may give you the freedom to choose the open and closed source components that work the best for you, but they lack the professional support you’d get with a closed source ALM solution. With uberSVN, we combine the freedom of a homegrown solution with a professional support option. uberSVN support includes:

  • 24-by-7 online, phone and email support.
  • guaranteed response times.
  • automated delivery of fixes and upgrades.
  • global coverage from the US and Europe.

9) Toggle Between Latest Releases

Subversion 1.7 introduces some great new features, but we know that upgrading core technologies can be a scary business! To make the leap to Subversion 1.7 easier, uberSVN 11.10 includes an innovative new svnSWITCH tool that gives the administrator the freedom to upgrade to 1.7 with just a click and a server restart – even better, the switch is just as easily reversible. This gives users the option of upgrading to 1.7 to take advantage of the new features, but with the safety-net of downgrading to 1.6 if required.

10) …..and it’s free!

A free download of uberSVN is available now, for the Windows, Linux and OSX platforms.

Top New Features in Subversion 1.7: HTTPv2 & svnrdump

In the first of our posts on Subversion 1.7, we looked at some of the major enhancements in version 1.7: a complete rewrite of the working copy metadata system, merge-tracking enhancements, and a new way of storing text-bases. In this post, we will look at even more exciting new functionality included as part of 1.7:

  • HTTPv2 – a new HTTP protocol variant designed to enhance performance between Subversion clients and the server.
  • A new in-memory caching system for FSFS repository backends
  • Network compression – a protocol for avoiding CPU bottlenecks on the compression side.
  • svnrdump – a new client tool that provides the same functionality as svnadmin dump and svnadmin load, but on remote repositories.

For version 1.7, the Apache Subversion team made the decision to drop DeltaV and implement a new HTTP protocol variant, ‘HTTPv2.’ This is the protocol the Subversion client uses to communicate with the Apache server – it is distinct from the protocol used to talk to svn serve. Less well-known than HTTP and DAV, the DeltaV protocol extended the WebDAV protocol with resource revision tracking capabilities, provided by the methods checkin, checkout, uncheckout, version-control, and report. Back in the days of Subversion 1.0, the Apache Subversion team made the decision to base Subversion on Apache + WebDAV/DeltaV, and to make Subversion a DeltaV sever, so that other DeltaV clients could interact with it. This approach offered several advantages, including the ability to pass through corporate firewalls and caching with intermediate proxies.

However, DeltaV never caught on, and today Subversion is one of the few significant DeltaV clients. Consequently, none of the benefits of DeltaV ever materialized for Subversion users, but they still had all the overheads associated with DeltaV. Traditionally, a lot of the port find requests in the Apache log file of a Subversion server have been associated with the DeltaV protocol. Dropping the DeltaV protocol will remove these extra port find requests, along with a few other requests, and make the protocol more efficient. Essentially, this protocol has shifted from HTTP “DeltaV on top of DAV on top of HTTP,” to HTTPv2 “DAV on top of HTTP,” so all of the DAV stuff will still work in 1.7.

The new HTTP protocol variant enhances performance between Subversion clients and the server, as it requires fewer client-server round trips per request. The sever itself has fewer requests to log and fewer accesses to the repositories, which reduces the server load. Users will notice the biggest difference when the client has to send requests in a series, where each request would require a round trip to the client and back. Particularly on a slow link with a high latency, these delays add up, resulting in a significant delay just from supporting the DeltaV protocol.

Such a fundamental change will always raise questions regarding backwards compatibility. Subversion has always made the effort to maintain backwards compatibility, and 1.7 is no exception. Subversion 1.7 features built-in support for both the HTTP protocol, and the HTTPv2 protocol, in both the client and the server. This gives the Subversion community a number of options:

  • If you upgrade your server to 1.7 and don’t upgrade your clients, the old clients will continue to communicate using the HTTP protocol.
  • If you upgrade just your client to 1.7, it will continue to use the HTTP protocol to talk to old severs, and use the HTTPv2 protocol to talk to the new servers.
  • If you upgrade both the client and the server, you automatically get the HTTPv2 protocol.
  • There is also a switch to stop advertising the HTTPv2 protocol, even if the server has been upgraded to 1.7, for instances where someone with a 1.7 server wishes to stop people from using the new protocol.

Subversion’s Serf-based repository access library has received all of the 1.7 protocol changes, and will become the default library for HTTP in Subversion 1.8.

Previous releases of Subversion have supported various caching mechanisms, but version 1.7 introduces a new in-memory caching system for FSFS repository backends. Version 1.6 introduced an in-memory caching system, but many users experienced problems with the amount of memory allocated to the cache increasing. Even worse, it was the memory associated with the cache infrastructure that increased, and not the cache objects, which meant the user experienced very little benefit from the increasing memory usage. Version 1.7 introduces a new caching structure and new code that has a much better behavior when it’s using memory, which solves the problem with cache growth. These changes are accompanied by Subversion 1.7 caching a slightly wider variety of Subversion objects and functionality for allowing users to control just how much memory is used by the cache. In particular, when dumping a repository, and consequently accessing the FSFS backend of the repository, the new caching mechanism will significantly speed up dumps and loads.

However, caching is not a perfect solution: as you increase the size of a cache, the rate at which performance increases, typically decreases, until increasing the size of the cache makes very little difference. This is usually because the CPU load created by the accompanying data compression has become a bottleneck, as compression takes a significant amount of CPU. In some cases, you can actually spend more time on the compression and decompression of data, than you gain by sending compressed data. Subversion 1.7 introduces a switch for controlling how much compression goes on. Users with a high enough bandwidth, can set Subversion to send uncompressed data, so the server has a lower load and can respond faster.

Subversion users will notice a new client tool in 1.7, ‘svnrdrump.’ Like svnadmin, svnrdump allows users to dump and load repositories, but whereas svnadmin must be running on the server with direct access to the repository, svnrdump can dump on the remote repository across a network, or load into a remote repository across a network using standard Subversion protocols. svnrdump does not require administrator access to the source or target repository, which is achieved by leveraging the replay API, first added for the svnsync one way replication system.

The new svnrdump tool can raise some security concerns, namely: if I let people dump my repository, am I letting them have access to data they shouldn’t have? svnrdump is a standard Subversion client, therefore it uses the standard Subversion protocols and is subjected to the same authentication procedures as any other Subversion client. As it doesn’t have any special privileges, it cannot bypass any of the protection on a repository and give users access to data they could not already access, for example by performing a checkout or an update.

In addition to these major changes, Subversion 1.7 introduces plenty of user-facing updates designed to make the developer’s life easier. These include:

  • A new ‘svn patch’ subcommand that can apply patch files in unidiff format to a working copy.
  • The ability to detect MIME types of binary files that are added to version control, by compiling with support for the libmagic library.
  • Subversion on Windows now fully supports changing the case of file and directory names.
  • Optimizations in the svn diff algorithm. Users should notice a performance boost when working with large files with many identical lines at the beginning and/or the end, and files that have many lines unique to one side of the comparison.

A complete list of what’s new is available at: http://subversion.apache.org/docs/release-notes/1.7.html

Despite all the excitement surrounding Subversion 1.7, we know that any migration can be a daunting prospect – to help users on the path to 1.7, we are currently shipping both Subversion 1.6 and 1.7 as part of our popular open ALM platform, uberSVN. Users have the option of switching between the two releases, through a unique ‘toggle’ feature in uberSVN’s configuration settings. And, if you need that extra support, WANdisco are offering three migration packs as part of our professional support services, designed for organisations moving from Subversion 1.6 to 1.7, and for those looking to make the leap from alternate solutions (ClearCase, PVCS, StarTeam, MKS, CVS) to Subversion 1.7.

Finally, like any successful open source project, Subversion relies on active participation and feedback from its user community. Contribute to the success of this major new release by providing your feedback at: http://www.svnforum.org/forums/56-Apache-Subversion-1.7-Support

Subversion 1.7 Arrives: uberSVN makes the switch

The developers of Apache Subversion finally take down the scaffolding, giving the Subversion community their first look at version 1.7.0 of the popular source code management software. Now, a bystander familiar with Subversion 1.6 might wonder what’s different as there are no eye-catching alterations in 1.7’s look and feel. Only a trip down into the foundations reveal the changes, which are large-scale and crucial to Subversion’s future.

WC-NG (Working Copy: The Next Generation)

The biggest change goes right to the heart of Subversion and its “working copy library”, which tracks changes that are made to a user’s working copy so that Subversion knows what actions to perform on the repository, while storing meta-data and pristine copies of files in those ubiquitous “.svn” subdirectories. Subversion 1.7 delivers a completely overhauled working copy library, moving to a centralized database that does away with the .svn folders. Compatibility with all the classic APIs is maintained, while providing a significant performance boost and fixes for a large number of bugs and limitations that will help Subversion maintain its status as an SCM destination of choice.

HTTP Protocol v2

Another big change is the streamlining of the HTTP protocol for svn, placing the focus firmly on speed and compatibility. This ensures that Subversion still supports DeltaV’s beneficial features, such as “autoversioning”, while dropping much of the protocol’s inefficiencies and maddening complexities.

Fresh Paint

While the developers faced these and other major engineering challenges, they also managed to polish off a large number of little improvements and fixes, with 150 noted in Subversion 1.7’s change file. This all shows Subversion 1.7 to be the strong technological renewal that many users have been asking for, rather than a revolution in form or function.

uberSVN makes the switch

So where does this leave uberSVN? After all, dealing with the upgrade of core software technologies can be fraught with difficulties and result in unexpected problems. Well, the news is good. While uberSVN 11.10 will still default to Subversion 1.6, upgrading to Subversion 1.7 couldn’t be easier. The inclusion of the svnSWITCH tool lets the administrator upgrade with no more effort than a click and a service restart. What’s more, the switch is just as easily reversible, which should give the cautious further reason to test Subversion 1.7’s revitalized waters.

svnswitch

Top New Features in Subversion 1.7: WC-NG & Pristines

Subversion 1.7 is a major update for the Subversion community; not only will it deliver long-awaited client-side performance improvements and new client tools, but improvements to the working copy metadata system will pave the way for even more innovations in future releases of Subversion. Some of the key updates are:

  • WC-NG – a complete rewrite of the working copy metadata system.
  • Pristines – a new way of storing text-bases in 1.7.
  • Merge-tracking enhancements – over 40 improvements to merge tracking.

One of the major improvements in Subversion 1.7, is a complete rewrite of the working copy (WC) metadata management system; one of the oldest parts of Apache Subversion. Subversion inherited the blueprint for handling its working copy metadata from CVS, but there are some built-in problems with this scheme. Some examples include:

  • A search for all files containing ‘test’ can potentially turn up Subversion text-base files, alongside working files.

  • When deleting a directory in Subversion, the files are removed, but the directory and the sub-directories remain on disk until the change is committed. This is because Subversion needs to hold onto the metadata contained within the directory.

  • Subversion failed when developers on case-insensitive platforms attempted to rename a file, just by altering the letter casing.

Although such problems are only minor, together these fixes add up to a much more robust metadata storage system.

Subversion 1.7 users will notice an immediate performance improvement, as WC-NG centralizes the working copy’s administrative metadata in a single database. Previously, Subversion maintained one .svn directory per directory in the working copy, to store metadata about a repository. This forced many Subversion operations to walk the entire directory tree, to gather all the necessary information about the working copy. All the metadata for the whole working copy is now stored in a single datastore in the root of the working copy, making it easier to manage, and easier to ignore, when required.

Over the years, the original WC library had grown so complex, that introducing bug fixes and improvements was becoming an uphill struggle; this redesign clears the way to incorporate new features in future releases. One of the features WC-NG enables for future releases, is stashing. This feature would allow Subversion users to ‘stash’ changes they were working on – allowing them to focus on urgent bug fixes, for example – and then recover the changes from the stash after the urgent commit has been completed. Once implemented, this feature could even be extended in Subversion: applying subsets, multiple stashes, and management of those changes, are all capabilities that could be added to the stashing functionality in Subversion.

Subversion keeps a record of the unmodified contents of all files in the working copy. Previously, these have been called ‘text-bases’ but in Subversion 1.7 they have been renamed ‘pristines’ and have been moved to the same datastore as the working copy metadata, where they are stored by checksum in a sharded format. Several space-saving mechanisms have also been introduced:

  • files in the working copy with the same pristine content, share references to the pristine store.
  • svn cleanup can be used to remove pristines that are no longer required by the current state of the working copy.
  • In future releases of Subversion, unreferenced pristines should be removed automatically.

This new storage method fixes a problem encountered when a user stored files with the same name, but with different capitalization, in the same directory. Developers on case insensitive file systems (such as Windows) were unable to checkout repositories containing such files – this no longer causes problems with Subversion 1.7. Instead of using the filename as a key to reference the file, WC-NG will use a generated index key to avoid case-sensitive file name issues.

To reduce the number of false svn:mergeinfo property changes for users who have a large number of subtrees with explicit mergeinfo, Subversion 1.7 no longer records mergeinfo on subtrees, when the subtree is unaffected by the merge. False svn:mergeinfo property changes can still occur if the change being merged is the result of another merge performed with a 1.5 or 1.6 client, as changes being merged that contain svn:mergeinfo modifications will still be applied. To get the most out of this new feature, Subversion users should create and maintain branches exclusively with 1.7 clients. On top of limiting the recording of subtree mergeinfo, Subversion 1.7 introduces more user-facing changes to merge:

  • For merge-aware tracking merges, special notifications and headers are produced when a merge records merge-info describing a merge, or omits mergeinfo.

  • Merges into mixed-revision working copies are now disallowed by default, to prevent unnecessary conflicts. A mixed-revision working copy must be updated with svn update, before a merge can be performed into it.

  • The svn mergeinfo subcommand flags revisions which are partially merged to a target.

  • Merges into shallow working copies no longer causes tree conflicts on nodes affected by the merge, but not present in the working copy.

In our second post on Subversion 1.7, we’ll look at some other key updates in this major release, including:

  • HTTPv2 – a new HTTP protocol variant designed to enhance performance between Subversion clients and the server.

  • New in-memory caching system for FSFS repository backends

  • Network compression – a protocol for avoiding CPU bottlenecks on the compression side.

  • svnrdump – a new client tool that provides the same functionality as svnadmin dump and svnadmin load, but on remote repositories.

Like any successful open source project, Subversion has always relied on active participation and feedback from its user community, but 1.7’s emphasis on client-side performance and new client tools, mean this is more important than ever. Provide your feedback, get advice on the latest features, and connect with other 1.7 users, at http://www.svnforum.org/forums/56-Apache-Subversion-1.7-Support

To help users on the path to 1.7, we’ll be shipping both Subversion 1.6.17 and 1.7 in our free, open ALM platform, uberSVN. Users will be able to easily switch between the two releases, through a unique new ‘toggle’ feature in uberSVN’s configuration settings. This gives users the option of upgrading to 1.7 to take advantage of the new features, but with the safety-net of downgrading to 1.6.17 if required. But, if you need that extra support, we will also be offering three migration packs as part of our professional support services, designed for organisations moving from Subversion 1.6 to 1.7, and for those looking to make the leap from alternate solutions (ClearCase, PVCS, StarTeam, MKS, CVS) to Subversion 1.7. To learn more about WANdisco’s complete range of Subversion support options visit: http://www.wandisco.com/subversion/support

What’s New in Subversion 1.7?

Subversion 1.7 is a major step forward for the Apache Software Foundation and the wider Subversion ecosystem. As part of this ecosystem, WANdisco is committed to helping the community keep up-to-date during this exciting time, and with this in mind, we’ve put together a comprehensive series of free one hour online training webinars, designed especially for Subversion users and administrators. And, the topic everyone’s talking about, is what’s new in Subversion 1.7?

In our ‘Introducing Subversion 1.7’ webinar we covered just that, bringing together a team of top Subversion insiders, including WANdisco’s Director of Open Source and Subversion’s release manager since 2008, Hyrum Wright; senior Subversion developers Philip Martin and Julian Foad, and founder of Assembla Andy Singleton, who ran through what’s new and noteworthy in 1.7, and looked ahead to how the 1.7 enhancements pave the way for even more innovations for the Subversion community.

Julian Foad, a Subversion contributor for nearly a decade, covered the radical changes in one of the oldest parts of Apache Subversion. For 1.7, the working copy (WC) metadata management system has been completely rewritten, as the original WC library had grown so complex that introducing bug fixes and improvements was becoming an upwards struggle. This complete rewrite is combined with an embedded SQLite DB that holds all the properties, version numbers and information about scheduled changes. For operations that have to gather metadata about a range of files and directories, the information is now all in one place. Users should notice an immediate performance boost.

In addition to these major changes to Subversion’s metadata system, Julian shared some useful new Subversion commands with attendees:

svn log – diff

Prints the diff of each revision inbetween the log messages; useful for viewing the changes in a file or a whole subtree.

svn diff –git

Produces diff output in Git format.

svn relocate

A dedicated svn relocate command for the old svn switch –relocate functionality; having dual meanings for the old switch command was confusing.

svn: E195002

Each error message has its own identification number; useful when searching for help on the web.

Senior developer Philip Martin, shared the ins-and-outs of another headline-grabbing feature in Subversion 1.7: HTTPv2. Philip covered all the benefits the user will notice when DeltaV is dropped in 1.7, before moving onto the new in-memory caching system for the FSFS repository backend, and sharing insider knowledge on how to get the most out of the new caching structures by controlling how much memory is used by the cache. Webinar attendees also got a heads-up on using network compression in Subversion, to avoid hitting the CPU bottleneck, and got some words of reassurance on security concerns surrounding dumping a repository using the new svnrdump tool.

Finally, Andy Singleton, founder of Assembla, elaborated on a proposal that sparked some controversy on the Subversion Dev list recently: a new merge command for Subversion. If you’re a Subversion user, at some point you’ve probably been annoyed with Subversion merge – Andy outlined his proposal for making merge in Subversion less painful, and how he envisions ‘newmerge’ solving some commonly-encountered problems with cyclic merge, foreign merge and tree changes. If you missed out the first time around, the full webinar can be viewed now.

This is an exciting time for the Subversion community, and we have plenty of webinars scheduled for the next few months to keep you up-to-date on all the latest goings on. Visit our Free Training Webinars page to browse the full list of our free, online training sessions for Subversion users and administrators. Early registration is recommended, as space is limited!

Subversion Apache tuning for MS Windows

The use of Apache on Windows amongst our enterprise customers is rare, with the majority opting to host the Subversion Apache servers on one of the flavours of Linux.

In the cases where Windows is the Subversion Apache server’s operating system, it is common that Administrators are plagued with overly high memory consumption by the Apache httpd process, leading in extreme cases to the Apache server shutting down.

All subversion binaries for windows only provide 32-bit versions of Apache. Apache on Windows is run as a single process, with child threads that handle the http connections. This means that the total amount of memory available to Apache on Windows is always limited to 2 Gb. Couple this with known memory leaks for Apache modules, and it becomes easy to see why an Apache Subversion server on Windows is likely to die frequently.

Thankfully there are ways to minimise Apache’s memory hemorrhaging and achieve long term uptime for the Subversion server. What follows are some key Apache configuration directives which are optimal for an Apache Subversion server on Windows:

KeepAlive On

KeepAliveTimeout 15

MaxKeepAliveRequests 500

MaxRequestsPerChild 400

MaxMemFree 8000

Looking at each of the directives in turn:

KeepAlive On – Allows a connection to be re-used for multiple requests. This results in better performance as there is an overhead associated with establishing new connections.

KeepAliveTimeout 15 – close the connection if no new request occurs after 15 seconds. We can increase this value to improve performance for clients – but doing so will keep child threads tied up for longer.

MaxKeepAliveRequests 500 – each connection is allowed to service up to 500 requests before it is closed.

MaxRequestsPerChild 400 – each child thread is allowed to service 400 connections before it is killed.

MaxMemFree 8000 – each thread can keep 8Mb of free memory before it is forced to release it.

The strategy behind the above settings is to limit the life of each thread, so that if there are memory leaks, the memory gets released when the threads are killed.

Depending on the exact distribution of Apache Subversion installed, it is often the case that the default Apache configuration allows each thread to live forever and can keep an unlimited amount of free memory – “not the best”.

After applying the above settings, each thread will service MaxRequestsPerChild * MaxKeepAliveRequests = 200000 requests before being killed, and each thread is forced to relinquish any free memory once they have accumulated 8Mb.

MaxKeepAliveRequests and MaxRequestsPerChild may need to be fine tuned, depending on how users report performance and how much memory is consumed by Apache, the aim being to find an acceptable compromise between data transfer speed and Apache memory size.

Jonathan Paul
WANdisco Sherpa

Can’t live without Subversion – even for a minute?

Can't Live without SVN - even for a minute?

Enterprise Subversion Webinar by WANdisco

The popularity of Apache Subversion (SVN) as a version control system has grown significantly in recent times and is widely recognized as the sole leader in Standalone Software Configuration Management (SCM). With more than five million users, an increasing share of the market and hundreds of major global companies deploying Subversion for their development needs it’s clear that many can’t live without Subversion – even for a minute!

Subversion maintains current and historical versions of files such as source code, web pages, and documentation, making it a highly compatible successor to various traditional SCM solutions. Subversion is open source (and therefore free), which suggests some of the reasons for its popularity but it also performs and scales in some of the most aggressive SCM environments on the planet where some of the traditional SCM products could not.

WANdisco supports the Subversion open source project in a number of tangible ways and one of those is through providing free training webinars. It’s important that users of SVN are maximising their skill set for their own benefit – and that of course strengthens the Subversion community in the process.

The suite of Subversion training courses provided by WANdisco caters for developers and administrators from many different sectors but our latest addition to the free webinar schedule is aimed at major firms that demand the very best from their SVN implementation.

Following the success of our Enterprise Hardened Subversion webinar, ‘Can’t live without Subversion – even for a minute’ will provide excellent content for users who demand that Subversion is always on and always accessible.

A featured case study from one of WANdisco’s valued Subversion customers will help participants learn why companies have become dependent on Subversion for mission critical applications and why they can’t afford to be down, even for a single minute!

The case study will highlight a very typical Subversion deployment: a technology company with around 100 developers started using Subversion as an ad hoc project implementation and it grew to become the company standard.  However, what they thought was a secure automated backup system actually failed and brought the entire system down, resulting in lost productivity of 100 idle developers for an entire day and project delays for an entire week lost before full functionality was restored.  That’s a lot of minutes – and dollars!!!  Could this happen to you?!

WANdisco’s Subversion Clustering provides an excellent solution and the webinar will explain how a three node cluster results in no single point of failure and extremely high availability. We will also tell you how implementation services were used to accelerate adoption with costs easily justified – the outlay being a fraction of the cost of real downtime.

If that wasn’t enough we will take you through a more detailed account of WANdisco’s Subversion Clustering, including replication, intelligent load balancing, flexible deployment options, extension with Multisite and implementation services.

If you can’t live without Subversion then make sure you register for this free webinar – and don’t waste a minute.

Click here to register for this webinar now.

Enterprise Software is Dead! Long Live Enterprise Software!

Just imagine if someone approached you with a ‘brand new idea’ for CRM software.  It would cost millions-of-dollars, install in 3-6 months and takes a team of consultants to do most of the work.  Of course you would laugh and rightly so after all it’s such a 2001 idea… How times change.

The idea sounds preposterous now because our expectations have changed.  I can get SalesForce.com up and running and the only real skill I need is to know how to enter a credit card number. Everyone is talking about the cloud and trying to cram the word “cloud” into their new company names as we all did with “.com” back in the heady days of 1998 when the dot com typhoon first hit us.  I think it’s very easy to get carried away, just as we did at the millennium, and throw rational business thinking out of the window.  Back then we forgot that you still actually needed to sell and fulfill orders just like any other business – that doesn’t change.  What does change is the relationship the consumer has with the retailer.  I can’t remember the last time that I purchased an airline ticket inside a travel agent’s office for example.

Let’s look at the reasons why enterprises are moving some software to the cloud. A recent IDC study found the top reason was easy-fast deployment.  The other reasons (see picture below) are associated with cost (less in house IT, pay for use, low monthly subscription) or getting latest functionality.  The converse of this is that traditional enterprise software is difficult and slow to deploy, expensive and complex to update.

I really don’t believe that cloud computing is as revolutionary as the industry would have us believe but what it is doing is changing our expectations in the way in which we consume applications.  Applications do not necessarily need to be in the cloud but they must:

  • Be easy to Install (in less than 15 minutes)
  • Have no special skills to get up and running
  • Be cost effective
  • Just work every time

When we designed uberSVN, we did so with these principles in mind.  That’s why we got tens-of-thousands of successful installs of the product in the first couple of months. So what’s next for uberSVN?  Well we believe that enterprise will take a leaf out of the consumer book.  Almost 3 years ago today Apple updated iTunes and in that update was an app store.  That changed the mobile device into a platform where, with just 1 click you can deploy sophisticated applications for just about everything you need and some things you probably don’t.  Again it’s successful because it’s incredibly easy, fast and cost effective.

Just imagine enterprise IT departments could do this with enterprise applications… enter uberApps.

uberSVN was launched in response to demand from enterprises to be empowered to choose ALM tools to meet their business goals be it price or functionality, open source or closed source.

The concept of an app store means that not only can users get incredibly easy automatic updates and simple (single click) installation but also incredibly fast and efficient discovery of applications.  In a software tools context imagine if you wanted a build engine, a wiki and defect tracker.  There is a plethora of open source, closed source, expensive and free products out there to go and research.   Who even knows if they are all going to work together?

uberApps solves that problem.  The applications are certified to work with the uberSVN platform – that means complete integration and testing by our QA team.  How do you know if it’s any good?  First off you can read reviews from other users and then you can try it out.  Installation is only a mouse click away and if you don’t like it or don’t need it then you can simply uninstall just like you do on an iPhone.

There is one critical difference with iPhone apps though.  There is clearly a balance between fast discovery of applications by users and empowerment to deploy them. uberApps models the process that enterprises use today where departments can request products from IT and then go through a standard approval process.  It’s pretty cool because it means that this is centralized rather than having to get a separate arrangement with dozens of different vendors.

uberApps may be groundbreaking but it’s simply modeling the new way that enterprises expect to consume software today. Which one would you choose –  An app store or a stereotypical software sales guy with his Porsche, golf clubs and Armani suit (all of which you’re eventually going to pay for)?

avatar

About David Richards

David is CEO, President and co-founder of WANdisco and has quickly established WANdisco as one of the world’s most promising technology companies. Since co-founding the company in Silicon Valley in 2005, David has led WANdisco on a course for rapid international expansion, opening offices in the UK, Japan and China. David spearheaded the acquisition of Altostor, which accelerated the development of WANdisco’s first products for the Big Data market. The majority of WANdisco’s core technology is now produced out of the company’s flourishing software development base in David’s hometown of Sheffield, England and in Belfast, Northern Ireland. David has become recognised as a champion of British technology and entrepreneurship. In 2012, he led WANdisco to a hugely successful listing on London Stock Exchange (WAND:LSE), raising over £24m to drive business growth. With over 15 years' executive experience in the software industry, David sits on a number of advisory and executive boards of Silicon Valley start-up ventures. A passionate advocate of entrepreneurship, he has established many successful start-up companies in Enterprise Software and is recognised as an industry leader in Enterprise Application Integration and its standards. David is a frequent commentator on a range of business and technology issues, appearing regularly on Bloomberg and CNBC. Profiles of David have appeared in a range of leading publications including the Financial Times, The Daily Telegraph and the Daily Mail. Specialties:IPO's, Startups, Entrepreneurship, CEO, Visionary, Investor, ceo, board member, advisor, venture capital, offshore development, financing, M&A