Monthly Archive for May, 2012

WANdisco’s May Roundup

This month, we’ve been busy creating new products for our award winning uberSVN platform and its growing community of users, and we’re proud to have just launched uberSVN Access Control. uberSVN Access Control combines uberSVN’s social coding capabilities, easy-to-use interface and uberAPPS store, with the enterprise functionality of our Subversion Access Control product. Before uberSVN Access Control, we were receiving requests from enterprise users who were interested in deploying uberSVN, but who needed some additional functionality first, so we’re particularly excited about this launch! The feedback so far has been overwhelmingly positive, but if you have anymore feedback, questions or comments about uberSVN Access Control, please do not hesitate to contact us.

In addition to releasing uberSVN Access Control, we improved the privacy policy for uberSVN. Our new policy makes installation information anonymous whilst still allowing WANdisco to validate key non-personal information against registered produces and services. (This policy came into effect as of May 24th, 2012.)

We’ve also been busy bringing the SVN community the latest, certified open source Apache Subversion binaries, after the release of Subversion 1.7.5. Subversion 1.7.5 features a string of enhancements, including a performance improvement for scanning the working copy root, and a memory and file-handle management improvement, alongside a list of bug fixes.

We made another big announcement this month: Subversion Live is back for 2012! After getting a great response from the Apache Subversion community in 2011, the conference is back for another year. Subversion Live 2012 will take place in San Francisco (October 10th & 11th) Greenwich, Connecticut (October 16th & 17th) and London (October 23rd & 24th.) The conference will feature a unique mix of sessions, expert-led best practices workshops and invaluable networking opportunities.

Confirmed sessions include:

  • What’s coming in 1.8
  • Best Practices for Large SVN Deployments
  • Subversion Server Tuning Demo
  • New Developments in SVN Clients
  • Merge & Performance Improvements
  • Branching & Merging Best Practices
  • Hook Scripts
  • Apache Bloodhound

Visit http://www.wandisco.com/svn-live-2012 to learn more.

Members of the WANdisco team were also lucky enough to attend the Jenkins User Conference in New York this month.

The Jenkins User Conference brings Jenkins experts and community enthusiasts from around the world together for a full day of learning and networking opportunities, focused on the popular open source continuous integration server.

The WANdisco team had a great time attending the different sessions, which covered all the latest and greatest Jenkins technology, best practices, and hands-on workshops and demos.

We’re all big fans of Jenkins at WANdisco, and are looking forward to putting what we learned into practice – thank you to CloudBees and of course, the Jenkins community, for putting on such a great event!

As a proud CloudBees partner, not only did we attend JUC NY, but we’re sponsoring two of the conferences. “We are thrilled to have WANdisco join CloudBees and the other sponsors in supporting the Jenkins community,” said Kohsuke Kawaguchi, creator of Jenkins.

Missed out on all the fun? Team WANdisco will also be attending the San Francisco JUC in September. We’re looking forward to meeting more of the Jenkins community (and maybe even some of the Jenkins+uberSVN community then!

Finally, we were proud to win the Technology Provider award at the Yorkshire International Trade Awards, 2012 this month. The Yorkshire International Trade Awards celebrate the success of companies involved with overseas trade, and international businesses who invest in the Yorkshire and Humberside area.

Speaking about their decision to name WANdisco as Technology Provider, the judges said: “It is clearly playing in some big global markets. This is really advanced technology – you can see it is on an upward path – and it is selling that technology to some really big companies.”

We had a great time at the awards ceremony at the Royal Armouries, and want to thank the whole Yorkshire International Trade Awards team for putting on such a great event!

All About the Subversion Commit Command

Apache Subversion’s ‘SVN Commit’ command sends changes from your working copy to the central repository, and is an essential command for sharing changes with the rest of your team. In this post we’ll show you how to perform an ‘SVN Commit’ before moving onto some best practices to bear in mind when committing your changes.

1) To perform a commit, you must first open the terminal window. To open this in Windows, press the “Windows key” and “r.” This will open a ‘Run’ dialog box.

2) Enter ‘cmd’ and click ‘OK.’

3) The terminal window will open. This is where you’ll enter all your SVN commands.

4) A commit is performed using the ‘SVN Commit’ command, the location of your working copy, and an appropriate log message. So, if your working copy has a location of C:\Users\Jessica\Documents\New_Project, the command would be:

5) Hit ‘Enter’ and your changes will be committed to the repository.

SVN Commit: 5 Best Practices

  • Always perform an ‘SVN Update’ before committing changes – this will help to avoid conflicts, and allows you to check how your changes perform in the latest version of the project.
  • Don’t commit unrelated changes – (i.e two bug fixes in one commit) this will make it difficult to distinguish where changes originated from and it can cause major headaches if the team decides to roll back to a particular revision.
  • Commit little and often – commit small changes frequently, instead of committing many small changes bundled into one large chunk. This will reduce the chances of encountering complications such as merge conflicts, and will reduce the complexity of conflicts when they do occur.
  • Never commit half-completed code – this will make rolling back to a previous revision tricky. This may seem to go against the concept of ‘commit little and often,’ but the solution is to split the task you’re working on into manageable but logical pieces, and then commit these regularly.
  • Make use of log messages – it is good practice to enter as much information as possible in the log message, as this can be an invaluable source of information if you need to revisit this particular revision at a later date. When performing a commit, the log message is entered in the “–message” format (e.g “–added ReadMe file”)

Need more info?

On June 7th we’ll be holding a free ‘All About the Subversion Commit Command’ webinar. This one hour webinar will cover:

  • Commit dialog options
  • Files or folders
  • Unversioned files
  • Ignored files
  • Drag and drop
  • Changelists
  • Common problems and how to avoid them

‘All About the Subversion Commit Command’ is free to attend but places are limited, so register now to avoid disappointment.

Introduction to Apache Subversion

What is Apache Subversion?

Subversion is an Apache-licensed, open source software versioning and version control system that can track changes to files, folders and directories. It can also be used to recover previous versions of data, and examine the history of how a particular dataset has changed. Subversion can operate across networks, encouraging collaboration by allowing team members at various locations to work on the same set of data. Subversion can be used to manage any collection of files – web pages, binaries, documentation – not just source code!

Downloading and Installing Apache Subversion

Certified open source Apache Subversion binaries are available to download from http://www.wandisco.com/subversion/download

To install, open the file to launch the setup wizard and follow the onscreen instructions to define which components you wish to install, and the install location. Enter the name of your server, the host port, and define the repository and repository location prefix – and hit install.

Alternatively, uberSVN makes Subversion easy and intuitive to use, and is free to download and free to use.

Creating your first repository

Once Subversion is installed, the first thing you need to do is create a repository. To create your first repository, open the command line, change the current directory to where you want to create your repository, and run the ‘svnadmin’ command:

svnadmin create {directory name}

Checking out a Project

To start working on your project, you must check out a working copy of the repository. This is achieved with the ‘checkout’ command:

svn checkout file {file location}

Commit Your Changes

Once you’ve made some changes to your working copy, you’ll want to push your changes to the server. Perform an “svn update” and an “svn diff” to test your changes, and resolve any warnings raised by Subversion, before committing. Once you’ve finished checking your modifications, and are ready to store the new revision in the repository, run the ‘commit’ command:

svn commit {path}

Get other people’s changes

When someone else performs a commit to the repository, you’ll need to pull those changes into your working copy, to ensure the latest trunk changes are compatible with what you’re doing in your working copy. Changes can be pulled into your working copy with the update command:

svn update {file name}
or
svn update {directory name}

Adding Files to a Project

Now you know how to checkout a working copy and commit changes back to the repository – but as you continue to develop your working copy, you may wish to add some new files to your project. When adding new files to Subversion, you need to tell the Subversion server about the files with the following command:

svn add {file name}
or
svn add {directory name}

Note that the new files won’t appear in the repository until you perform an ‘svn commit’ and send them to the repository.

Deleting Files from a Project

If at some point you want to remove these files from Subversion, run the delete command:

svn delete {file name}
or
svn delete {directory name}

Again, you must perform a commit before the file is deleted from the repository. You can also run ‘svn list’ to confirm that the file was successfully deleted from the repository.

And if you get stuck…..

The ‘svn –help’ function provides a summary of available commands or, for more information on a particular command, use:

svn help {command}

Other useful commands

  • svn status {path} – prints the status of working copy files and directories.
  • svn diff – display the differences between two revisions.
  • svn merge – applies the differences between two sources to a working copy path.
  • svn move SRC DST – think of this as ‘svn copy’ that automatically deletes the source file. This command moves a file or directory in your working copy, or in the repository. Note that Subversion does not support cross-repository moving, so it is impossible to move files across repositories with this command.
  • svn list – allows you to view the content of the Subversion repository, without having to download a working copy.
  • svn log – Subversion remembers every change made to your files and directories. This command displays the commit log messages. By default, it will show the information for the current working directory of your working copy. Alternatively, different paths can be specified.

Need more info?

On June 14th, 2012 we will be hosting a free ‘Introduction to Subversion’ webinar. This course is intended as a primer for new users or people who are thinking of making the jump to Subversion, and will cover the following topics:

  • Repository basics – creating and organizing
  • Checkouts, working folders, editing files and checkins
  • Reporting on changes
  • Simple branching
  • Simple merging

This webinar is free to attend, but places are limited so register now to avoid disappointment.

Subversion Tip of the Week

Getting Started with uTest and Subversion

uTest, the world’s largest marketplace for software testing, provides you with an easy and convenient way to get your web application, website or mobile app tested by a professional team under real-world conditions. Each uTest project provides detailed bug reports with screen captures and steps to reproduce the issues; step-by-step results for each testing task; and expert feedback on the design, performance and functionality of your app.

Getting started with uTest is made easy with uberSVN! Simply follow these four steps to create your first uTest project.

1) Open the uTest Bronze tab inside your uberSVN installation.

2) Enter some basic information about your app, including the name of your app and a short description, and the platform (choose from iOS, Android, Windows phone, Blackberry, desktop, or mobile web.) This information will help uTest select testers who are best suited to your individual requirements.

Click continue.

3) Enter a name for your test, select your test’s primary goal from a list of options, and provide instructions on how to download your app. Alternatively, you can upload the app.

4) Explain the tasks you want your testers to complete and any areas they should be focusing on. Don’t forget to specify the expected outcome of all the tasks, so your team can distinguish between expected behaviour and bugs.

And that’s it! uTest will take this information and assemble a team of testers who meet your exact requirements.

Our Support Engineers are the Sherpas of Source Control Management! Just as traditional Sherpas use their deep knowledge of local terrain to assist mountain climbers in reaching the highest peaks and avoiding pitfalls along the way, WANdisco’s Subversion Sherpas use their extensive experience to guide customers away from problems and enable them to get the most out of Subversion. Our ‘Team Sherpa’ consists of highly skilled support engineers and core Subversion developers who have been working on the Subversion project since it began, and are also uniquely positioned to help you migrate to the latest and greatest releases of SVN. You can hire one of our Subversion Sherpas today, by visiting http://www.wandisco.com/subversion/support

uberSVN gets a Latest Release Channel!

Over the last few months we’ve added an awful lot to the uberSVN experience, from the uberAPPS platform (with Jenkins, uTest and a bunch of support and maintenance tools), to our first home-grown uberSVN plugin, uberSVN Access Control.

We’ve also seen the removal of uberSVN’s beta tag, coinciding with it’s first birthday.

As a result, we’ve decided to split uberSVN’s release cycle (starting with release Chimney House 2). From here on in, uberSVN updates will come in two distinct phases, initially released to our Latest Release Channel for a sneak preview and then to the entire uberSVN user base.

So what’s the Latest Release Channel about?

We really appreciated all of your support during uberSVN’s beta phase. But what we really value is your feedback and suggestions, which have helped us to continually improve uberSVN thus far.

Your feedback is valuable to us. We want to continue receiving feedback, even though the beta tag has been removed. So, we’ll be providing updates to our Latest Release Channel first, at least a couple of weeks before the rest of the user base get them. This means you get to test new features, help us make any last minute design changes and see how they fit into your ALM environment before the update becomes widely available.

How do I make sure I’m on the Latest Release Channel?

If you’re already running the latest release (uberSVN 12.04 – Chimney House 1) you’ll start to see Latest Release Channel updates available for you to install from mid-June.

To provide feedback or join the discussions you’ll need to register for our forum here.

There is a dedicated uberSVN forum area where you can talk to other users about our new features or issues, and get input from the developers and product team behind uberSVN.

What’s coming up next?

We like to give you exciting new features as quickly as we can, so you’ll see updates available on a regular basis.

We’ve assembled a crack User Experience team to completely overhaul the existing uberSVN interface. We’re in the process of redesigning the Admin and Users/Team tabs in (take a look here and here for a sneak preview), along with our Social coding and Backup/Restore features. This is the first phase of a long roadmap for UI improvements. Now is the time to shout if there’s something bugging you, no matter how small the change is we’ll review your comments and endeavor to provide you with feedback.

Longer term we’re planning to create a Software Developer Kit (SDK) so you can customise uberSVN how you want to, integrating your own homegrown tools into your ecosystem or build plugins for our uberAPPS store (and make money by delivering those products to the rest of the uberSVN community!).

Visit our forums and start to build your reputation. We have some special rewards for those who contribute to the uberSVN experience and we’re here to listen.

We look forward to hearing your suggestions and working with you to continue to improve uberSVN!

Mand

 

10 Best Practices for Version Control

Used correctly, version control is an invaluable tool – but following some basic guidelines can help you get even more out of your version control system. In this post, we share ten best practices for getting the most out of version control.

1) Version control everything…..

Version control is no longer just for source code management. Thanks to user-friendly and intuitive tools such as TortoiseSVN and uberSVN, version control is increasingly becoming a tool for programmers and non-programmers alike. Consider encouraging every member of your team (including the non-techies) to keep all files and folders related to your project under version control. This could include meeting minutes and whiteboard notes, architectural designs and user documentation. Even for documents that are unlikely to change, it’s useful to have everything in one place and available to everyone on the team.

2) …but don’t treat version control as a backup system

Although version control does provide you with a backup of your files and folders on a remote server, using your version control like a backup system is a bad habit that doesn’t make the most of the system’s unique functionality (although it is possible to backup your Apache Subversion repositories.)

3) Commit easily readable documents

If you’re committing documents that require formatting before they can be read, consider committing them in a more accessible form, such as a PDF. In addition to making documents quicker and easier to access, this allows you to refer people directly to a document in the repository. However, remember to update both versions of the document when you make changes (or better yet, automate this process.)

4) Be consistent with your file/folder names

Implementing a logical naming convention will make it easier to locate particular items. Ideally, this naming convention should be explained in a coding conventions file, which is accessible to all members of your team, and this convention should extend to all the projects in your repository.

5) Commit little and often

Commit small changes frequently, instead of committing many small changes bundled into one large chunk. This will reduce the chances of encountering complications such as merge conflicts, and will reduce the complexity of such conflicts when they do occur.

6) Only commit finished work

Never commit half-completed code. This seems to go against the concept of ‘commit little and often,’ but the solution is to split the task you’re working on into manageable but logical pieces, and then commit these regularly.

7) Update regularly

This ties into the concept of ‘commit little and often.’ Perform regular updates on your working copy, to keep up to date with the changes being made in the trunk. This is important, even if it seems your current work has little to do with the rest of the team. It is also good practice to update your working copy before making any changes.

8 ) Make use of log messages

Always make use of log messages, and make sure you include as much information as possible (what changes were made, why, and by whom, etc.) If the commit deals with a specific bug or change request, include the issue or bug number in the log message.

9) Implement a sane project layout

Maintaining a version control system can become a complex task, so implementing a logical project layout from the beginning is crucial. Some version control systems, such as Apache Subversion, don’t impose a strict project or repository structure, which makes planning your layout in advance even more important.

10) Test, test, test

Get into the habit of systematically testing everything, especially before you perform a commit or a merge. Also consider CI and assertion testing on feature branches, which is a useful way to indicate code maturity and progress.

WANdisco Wins Technology Provider Award

We’re proud to announce we have just won the Technology Provider award at the Yorkshire International Trade Awards, 2012. The Yorkshire International Trade Awards celebrate the success of companies involved with overseas trade, and international businesses who invest in the Yorkshire and Humberside areas.

“It is clearly playing in some big global markets,” said the judges, about selecting WANdisco for their Technology Provider award. “This is really advanced technology – you can see it is on an upward path – and it is selling that technology to some really big companies.”

We had a great time at the awards ceremony at the Royal Armouries, and want to thank the whole Yorkshire International Trade Awards team for putting on such a great event!

Advanced Subversion Polling with Jenkins: File Fingerprints

In ‘Polling Subversion with Jenkins’ we showed you how to configure Jenkins to poll an Apache Subversion repository once every five minutes. In this follow-up post, we’ll explore some advanced options you can introduce once you’ve implemented the basic polling system. This post will show you how to configure Jenkins to automatically track versioned files using ‘file fingerprinting.’

In the world of modern software development, it’s common practice to work on different projects simultaneously. With so much going on, it’s easy to lose track of where files originated, and what version is being used by which project. Thankfully, Jenkins supports file fingerprinting, which allows you to see exactly when and where your files are being produced and used, and even to upload a file from your local machine and query Jenkins on its version number. File fingerprinting works by creating a database of MD5 checksums, which gets updated automatically as new versions of fingerprinted files are committed to the repository.

How To: Setup File Fingerprinting

1. To enable file fingerprinting in uberSVN, simply select the ‘Jenkins’ tab, followed by the Jenkins job you previously setup to poll Subversion.

2. Select the ‘Configure’ option from the left-hand menu.

3. Tick the ‘Record fingerprints of files to track usage’ option.

4. Specify the files to track in the ‘Files to fingerprint’ text box. In this example, trunk/*.txt will track all .txt files in the trunk (if you wanted to track all .zip files in the tags directory, you would use tags/*.zip)

How To: Test Your File Fingerprinting

1. To test your setup, make some changes to the files earmarked for fingerprinting, and commit those changes.

2. Open the build report in Jenkins, and select ‘See Fingerprints’ to view the recorded fingerprints.

3. This screen will display some basic details about the tracked files, including the original owner, and how old the information is. To see more, click on the ‘more details’ link.

4. On this page, you can see all the jobs and builds where the file has been used.

How To: Check File Fingerprint

Another benefit of enabling file fingerprinting, is that if you have a file on your local machine but are unsure of its version number, you can upload it to Jenkins and check the fingerprint against Jenkins’ fingerprint database.

1. Start by selecting the ‘Check File Fingerprint’ option from the main Jenkins dashboard.

2. Upload your file and select ‘Check’ to run it against Jenkins’ database of file fingerprints.

3. Jenkins will then display all the information about the uploaded file.

Not yet started with uberSVN? It’s free to download and free to use! You can download the latest version now from http://www.ubersvn.com/ If you need some extra support with your Jenkins+uberSVN installation, Professional Support for Jenkins is also available.

Congratulations to Apache on ‘Unprecedented Growth’

As a proud sponsor of the Apache Software Foundation, WANdisco are excited to see that the ASF has announced “unprecedented growth” for the first quarter of 2012.

The ASF describes this quarter as “record setting” – which is good news for Apache’s community of top-level projects (including Apache Subversion!) incubating innovations, and of course all of the committers, contributors and users.

“Our landmark success can be attributed to Apache’s longstanding commitment to providing exceptional Open Source products, each with a stable codebase and an active community,” said ASF President Jim Jagielski. “The ASF makes it easy for all contributors, regardless of any affiliations, to collaborate.”

At WANdisco, we’re convinced open source solutions are only increasing in popularity and are also enjoying growth in the enterprise. We believe the ASF’s announcement is further proof that this is the case.

Congratulations, Apache!

Webinar on Globally Distributed Subversion for the Enterprise

On June 4th WANdisco will be hosting a free webinar on optimizing globally distributed development for the enterprise. ‘Forrester Research on Optimizing Global Distributed Software Development Using Subversion‘ will explore the issues associated with distributed development and the challenges and costs these issues create. This discussion will also include a third party analyst from Forrester that conducted a study on a Fortune 500 company to determine the pain points felt for infrastructure, collaboration and risk management as well as the cost impact to the company from problems such as performance and extended downtime during disaster recovery.

Software development of any kind comes with imposing challenges that become exponentially more difficult to the enterprise who must deal with the issues of scale, security and collaboration between geographically dispersed offices and employees.

The latest and greatest software development methodologies, specifically the Agile practices, are borne out of fundamental principles designed to achieve just one thing: Success. Project success is the key driver behind the massive popularity of Agile development practices and any successful implementation will require speed, excellent communication and collaboration, as well as the ability to introduce, test and build new changes as quickly as possible.

Source code is one of the most important, if not the most important, asset of most companies, this is especially true for the enterprise who employ hundreds to thousands of developers around the globe contributing new code around the clock. Having a secure, reliable and redundant infrastructure is imperative to managing and mitigating the risks associated with hardware or infrastructure downtime especially in disaster scenarios but also routine situations such as patching or updating the operating system. Developer downtime resulting for system downtime or network outages incurs a real cost to the organization.

Please join us on June 4th to see an overview of the Forrester study and how WANdisco technology has resolved all of these issues and concerns and can do the same for you.