Monthly Archive for February, 2012

WANdisco’s February Roundup

We’ve seen some big changes to Team WANdisco this month!

We already have a company-wide policy of limiting our carbon footprint and being environmentally responsible with all of our business activities – but for us, that just isn’t enough! Building on the success of our Social Captain role, we are now appointing a quarterly Green Captain, who will be in charge of the office’s recycling policy, the carpool strategy, and generally making sure that WANdisco is a green place to work. Our first ever Green Captain, is our graphic and web designer, Ben Fraser.

But the biggest change at the WANdisco offices this month, is a radical new vacation policy that allows all employees to take as much paid vacation as they need to stay productive and enthusiastic in their day-to-day work. We’re all really excited by this news, and judging by the reaction on Twitter, we’re not the only ones:

  • @WANdisco Your way to see things is an awesome show of trust towards your coworkers. I envy you 🙂
  • Great initiative from @WANdisco, they seem to know what they’re doing. More tech companies should operate like this
  • Seriously, we need more companies that understand that face time is not important. Results are.
  • @WANdisco Awesome. I wish more companies would see employees as partners and try to reach goals together and profit both from that.
  • Great example of a forward 3D thinking business: WANdisco – Employees have as many paid holidays as they like!

But it’s just one of the many benefits to working at WANdisco. (Want to find out more? Visit our Careers page if you’re looking for an exciting, fast-paced working environment – with lots of added benefits!)

In other news, our development team have been hard at work, making the latest Apache Subversion 1.7.3 binaries available from our website, and adding new apps to the uberAPPS store: professional support for TortoiseSVN and uberSVN Support Starter Packs. But, their biggest project this month was finishing off the latest and greatest release of our Enterprise Subversion product, Subversion Access Control. The 4.1 release completely overhauls the underlying access model, as well as introducing some great new features. Looking for some more info on Subversion Access Control? We’ll be hosting a free, hour-long ‘Introducing Access Control 4.1’ webinar on April 12th. Early registration is recommended, as spaces are limited!

WANdisco were also named one of DZone’s Most Valuable Bloggers this month. We’re all massive DZone fans in the office, so we’re really proud to be able to display the DZone MVB badge at our blog.

Thank you, DZone!

Finally, we hosted our first social of the year, at Sheffield’s quirkiest bar, The Old House.

Thanks to our new Social Captain Katherine Sheehan for organizing such a brilliant night out!

Give us your Feedback on the uberAPPS Store

Tell us what you think

It’s been a busy few months for uberAPPS, the integrated app store for uberSVN, not only have we added professional support for Jenkins and uTest’s crowdsourcing services, but professional support for TortoiseSVN and uberSVN Support Starter Packs are now also available through uberAPPS.

We hope you are enjoying using uberSVN and uberAPPS! We’ve had some great feedback so far, but now we need your help to make the uberAPPS experience even better. Is there a particular app that would be a perfect fit for your uberSVN installation? Or an ALM component that would make your life easier? We’ve created a quick and easy online poll for our users, so we can continue to bring the uberSVN community the functionality they need.

As always, if you have any comments or questions about uberSVN, please do not hesitate to contact us directly. We look forward to hearing your feedback.

Subversion Tip of the Week

Backing up Apache Subversion

No matter how clued up you are on Apache Subversion, disasters do happen, so it’s important to make backups of your repository data. In Subversion, there are two main ways to make a backup of your repository:

1) Incremental backup – makes a copy of all the changes that occurred since the last backup. To create an incremental backup, run the following command:

svnadmin dump {repository} -r {starting_revision} -incremental.

This command creates a dump file with information about the revisions that took place between the “starting_revision” and the latest revision, which can then be loaded following any unexpected data loss.

2) Full backup – this essentially creates a copy of an entire repository. It can be created in two ways:

svnadmin hotcopy {repository}{destination}

This command will create a local directory containing a complete copy of the repository, including hooks, configuration files and database files.

Alternatively, you can use the ‘hot backup’ script located in the tools/backup directory:

hot-backup.py {repository}{destination}

Poll Results: Are You using Subversion 1.7 Yet?

At WANdisco, we’re convinced that Apache Subversion 1.7 is a great release. Not only did it completely overhaul the working copy metadata system, but it added support for HTTPv2 and a new remote dumpfile tool. But, we wanted to know how many of you had already made the switch to Apache Subversion 1.7 – so earlier this month, we held a poll at SVNForum.org, to find out who has switched, who is planning to, and who is content to stick with their earlier release of Subversion.

Click on the thumbnail below to see the full results of our poll:

Thank you to everyone who took part in our poll! We had a great response from the Subversion community.

Do you have a burning, SVN-related question you would like to put to the Subversion community? We’ll be running regular polls throughout the year, so feel free to post your poll ideas in the Comments section or, alternatively, contact us directly.

Subversion MultiSite Enables Agility For the Distributed Enterprise

The Agile methodology has become a wildly popular approach for software development with close to 50% of development teams using at least some agile techniques based on different surveys. The responsibility of an agile team is to deliver value in the software they are creating and meet the criteria or objectives that determine success for the project and a common set of development “best practices” have arisen that are crossdisciplinary. Adopting these best practices can be especially challenging for collaborating agile teams that are distributed or have distributed members.

The Agile principles state that successive short development cycles, popularly referred to as rapid iterations, be used to develop software quickly in little bits (pun ;)) at a time. Different methodologies have arisen from the Agile principles like Scrum, XP, TDD, Crystal and others which define activities and process for agile teams. The process gets into the specific details for each discipline but agile teams enjoy a great amount of freedom for self organization as well as self definition which as a result teams may borrow one aspect of another methodology to apply to their own agile approach. Popular examples of this are the XP User Story or and the Scrum Backlog.

The common principles mixed together with the common practice of borrowing the best aspects of each discipline has helped popularize a set of software development best practices. These are practices which are good for any software development team but the popularity and nature of agile software development has led these practices to be commonly associated with agile specifically. Here is a list of the more common agile best practices:

  • Rapid Iteration
  • Continuous Integration
  • Parallel Development
  • Frequent Commits
  • Automated Testing
  • Code Review
  • Refactoring

If you are an enterprise considering a large scale adoption of agile software development practices then there are a number of challenges that you may be facing. Scaling Scrum is well documented in Ken Schwabers book “The Enterprise and Scrum” and he has special sections dedicated to the problems of distributed teams, distributed members and the scarce skills problem (eg: one DBA shared by many teams). Ken handles the issues associated with the organization and daily routine for Agile Scrum adopters, but what about the technical challenges especially those associated with the best practices I listed? This is an area where the value added services offered by WANdisco enter the conversation.

Using Subversion Multisite and Apache Subversion will enable teams to fully adopt an Agile practice like Scrum on an enterprise scale, especially where distributed teams or members are concerned. Here is how.

  1. Subversion Multisite instantly synchronizes development changes between locations. This means that distributed teams always work against a local source code repository, without which frequent commits, continuous integration, code reviews and parallel development might not be possible at all or at best will be severely hindered if users are required to connect across the internet to access the source code repository (for read or write activities)
  2. Multisite also supports local clustering option, an enterprise that sets up two or three load balanced Subversion servers will better handle the increased traffic from frequent commits and especially from continuous integration where automated tests and builds are being performed continuously and using up a lot of server resources.
  3. Multisite leads to improved team communication, imagine a tester working in Los Angeles getting the latest build locally almost immediately after a task is committed in New York (again locally). When each site has access to a complete replicated copy of the source code repository many things are possible and the usual downtime related to downloading a new build off a remote server or uploading a set of new changes to a remote server can be entirely eliminated.

An enterprise that is considering or has already adopted agile practices will also want to adopt the software best practices. Given the nature of agile development and rapid iterations adopting these best practices are critical and with Subversion Multisite many of the technical challenges facing distributed teams can be easily solved. There are of course other benefits to Multisite such as built in disaster recovery, guaranteed uptime that will also interest any enterprise and the value offered to Agile teams will be indispensable especially as the Agile usage scales upwards.

Subversion Tip of the Week

The Undo Button!

In the world of software development, client requirements change and new features can introduce more bugs than they fix – sometimes, you just need an ‘undo’ button! Thankfully, Apache Subversion remembers every change made to its files and directories, so you can roll back to a revision before it all went wrong! There are several methods for reverting to a previous version:

1) svn revert {filename} – this command overrides any local changes made to the working copy, with the code in the repository.

To run this command in TortoiseSVN, select ‘Revert…’ from the TortoiseSVN menu.

You will then be able to specify which changes you wish to implement. In this example, we are re-adding the ‘Help file.’

2) svn merge -r {revision number} – this command performs a reverse merge by rolling back to a change that has already been committed to the repository, and then applying it to the local working copy.
3) Alternatively, it is possible to simply delete your working copy and then checkout a fresh working copy from the repository.

Intro to Subversion Access Control 4.1

Big plans are brewing at WANdisco for 2012, and one project that has just been completed, is Subversion Access Control 4.1.

Access Control 4.1 includes a revamped user interface. The new look makes it easier for users to navigate through the security features offered by Access Control and setup new rules and permissions for Subversion repositories and paths.

The ‘Group’ concept has been replaced with “Teams’ and a new feature has been added to allow the designation of “Team Leader” who is then granted some administrator privileges. Specifically, the Team Leader is able to setup user access rules to a pre-defined repository path (or paths).

We are calling this new feature Delegated Admin since it allows granting of some administrator privileges to users. The context of how this feature could be used might be best described in terms of business units for an enterprise corporation. Consider the following scenario.

A company has 100 Apache Subversion users split into 10 teams, each associated with a separate BU, each team has its own Subversion repository. In the past, Access Control admin can go in and setup repository security rules that applies to all 100 users and repositories. With delegated admin the Access Control administration can create 10 new Teams and assign a Team Leader to each one, specifying the Repository that team should have access to. From there, the Team Leader can log into the system, add/remove the users for the team, and setup multiple rules needed to properly manage those Subversion assets.

Effectively what delegated admin does is allow Team Leaders, people in charge of their respective Business Units, to define and configure their own team rules. Access Control supports the concept of nested-teams which is called Sub-Teams (see screenshot) and this would even allow you to further organize teams from larger sections into multiple sub-sections (eg: West Coast Branch –> Plugins Team; West Coast Branch –> Application Team) and designate a team leader at each level to manage users and rules.

The role of the Access Control administrator now is to simply define Team Leaders and the resources which they can direct access over. Once defined the Team Leader can only create rules that affect their resources meaning the West Coast Branch won’t be able to setup access rules for the East Coast Branch’s repositories and vice-versa.

The ability to delegate some administrator functionality to Team Leaders, and in the context of specific Subversion paths and repositories, is a powerful new feature that will empower enterprise organizations and save time and money. Team Leaders are able to set access restrictions based on the need and requirements of their given team or business unit and no longer have to rely on a single administrator to do that for them.

WANdisco Updates Subversion Access Control

We’re pleased to announce a substantial update to our complete authorization, audit and access control solution for Enterprise Subversion, Subversion Access Control.

Subversion Access Control 4.1 is an innovative security solution for Apache Subversion that provides full audit, authorization and access control capabilities that go well beyond what Subversion offers on its own. Some of the key benefits to employing Access Control include:

  • Delegated administration option that allows the root administrator to create teams and delegate administration authority to team leaders.
  • Automatic synchronization of Subversion Access Control with LDAP user and group configuration. Subversion Access Control automatically picks up LDAP user and group membership changes and assigns new users to the Subversion team that corresponds to their LDAP group.
  • Comprehensive audit capabilities that report every repository access attempt down to the file level, showing user, Subversion command, date and time and whether access was allowed or denied. Security administrators receive immediate alerts for any access violations.
  • Can be implemented standalone or in combination with Subversion MultiSite 4.1 for distributed development teams. With Subversion MultiSite, security policy changes made at one location are immediately replicated to every other to enforce consistency across all sites.

Subversion Access Control 4.1 is a substantial update for the product, not only adding a list of new functionality, but completely overhauling the underlying access model. The access control lists previously required to maintain complex security policies, have been replaced by an all-new, streamlined approach that applies access rules to hierarchical teams. For more information on what’s new and noteworthy in this update, see the Release Notes.

WANdisco will be hosting a free hour-long ‘Introducing Subversion Access Control 4.1’ webinar on April 12th. Early registration is recommended, as space is limited.

Extending Jenkins with uberSVN

Installing Jenkins is made easy with our free, open ALM platform for Apache Subversion, uberSVN. But when installed through uberSVN, your Jenkins installation contains only the bare minimum; at some point you will want to extend your uberSVN and Jenkins installation with additional plugins. Thankfully, this is made easy with uberSVN, as any number of new plugins can be added without ever leaving your installation.

Start by going to the ‘Jenkins’ tab, followed by the ‘Manage Jenkins’ option on the left side of the screen, and finally selecting the ‘Manage Plugins’ link.

From here, click on the ‘Available’ tab, which will bring up a list of all the plugins you can add to Jenkins.

Scroll down to see the list of available plugins. If you need some more information on a particular plugin, clicking on the name of the plugin will take you to a product page where you can browse all the relevant information about the plugin in question, including the changelog, maintainers, and the date of the most current release.

If you wish to install the plugin, go back to the ‘Available’ page and select the tickbox on the left. When you have finished selecting plugins to install, scroll to the bottom of the screen and hit the ‘Install’ button.

The plugin will now be downloaded. Note that Jenkins will need to be restarted for these changes to take effect.

Once you have restarted Jenkins, go to the ‘Installed’ tab in the ‘Manage Plugins’ screen. You will see that the plugin you have just downloaded has been added to the Installed list.

Jenkins is available for free through uberSVN. Visit http://www.ubersvn.com/ now to download uberSVN. A professional support option for Jenkins is also available.

Using uberAPPS? Have your say on uberAPPS at the official forum!

Apache Subversion 1.7.3 Released

The first Apache Subversion release of 2012 is now available! Subversion 1.7.3 builds on the long-awaited enhancements of the recent Subversion 1.7 release, by introducing even more improvements. Subversion 1.7.3 improves the SASL error messages, allows committing the result of some copy operations, and fixes a source of possible FSFS corruption.

More information on what’s new and noteworthy in this release, is available at the Changes file. The latest binaries can be downloaded for free from the WANdisco website. As ever, our 1.7.3 binaries undergo the same rigorous quality assurance process as our Enterprise Subversion products.

Congratulations to Apache Subversion’s community of developers, contributors and users, on another great release!