Tag Archive for 'ALM'

Page 2 of 4

Subversion Tip of the Week

Apache Subversion: Basic Workcycle

In Apache Subversion, the basic workcycle follows the ‘checkout-edit-update-commit’ format.

A ‘Checkout’ is the process of pulling all the files from your repository onto your local machine, where it becomes known as a ‘working copy.’ You can then work on these files in isolation, before sharing your work with the rest of the team by ‘committing’ back to the repository.

In this week’s tip, we’ll provide a handy introduction to this basic workcycle.

Checkout

To checkout a working copy, run the ‘svn checkout’ command, followed by the URL of your repository and the location where you wish to create the working copy.

In this example, we’re creating a working copy on the desktop, in a file called ‘Repo’:

Tip, if you’re using the free uberSVN platform, you can easily find out your repository’s URL by opening the ‘Repositories’ tab.

You can now edit the files and folders in your working copy.

Update

You may be ready to share your changes with the rest of your team, but it’s good practice to perform an SVN update first. This will pull any changes your colleagues may have already committed, into your working copy, ensuring your changes fit with the most up-to-date version of the project.

To perform an update, run the ‘svn update’ command, followed by the location of your working copy.

svn update (working copy location)

Commit

Let’s assume any changes your team committed are compatible with your changes, and go ahead with the commit. When performing a commit, you should leave a log message and include as much information as possible, as this can be an invaluable source of information if you ever need to revisit this revision. When performing a commit, the log message is entered in the “–m” format (for example, -m “added ReadMe file.”)

The commit itself is performed using the ‘svn commit’ command, followed the log message and the location of the working copy.

svn commit -m “log message” (working copy location)

In this example, we are performing a commit with the log message “added Admin Guide text.”

Need more Subversion know-how? After getting a great response from the Apache Subversion community in 2011, Subversion Live is back for 2012, bringing the Subversion community sessions covering everything from Subversion’s future, to expert-led best practices workshops, as well as the unique opportunity to meet the core Subversion committers. We’re currently running a very special early bird offer: register now using the ‘earlybird’ code to get a 25% discount (note, the early bird offer ends 10th August, so you better be quick!)

Bringing Order to Your Jenkins Jobs

Once you’ve been working with Jenkins and uberSVN for a while, you may find yourself in a situation where you have several jobs that need to run in a specific order, for example:

  • Job 1 and Job 3 can run simultaneously.
  • BUT Job 2 should only start when Job 1 and Job 3 have finished running.
  • AND Job 4 should only start when Job 2 has finished.

How can you implement this complicated setup? This is where Jenkins’ ‘Advanced Project Options’ and build triggers come in handy. In this tutorial, we’ll walk through the different options for scheduling jobs using Jenkins and uberSVN, the free ALM platform for Apache Subversion.

Note, this tutorial assumes you have already created a job and configured it to automatically poll your Subversion repository.

1) Open the Jenkins tab of your uberSVN installation and select a job.

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

3) In the ‘Advanced Project Options’ tab, select the ‘Advanced…’ button

4) This contains two options that are useful for ordering your jobs:

  • Block build when upstream project is building – blocks builds when a dependency is in the queue, or building. Note, these dependencies include both direct and transitive dependencies.
  • Block build when downstream project is building – blocks builds when a child of the project is in the queue, or building. This applies to both direct and transitive children.

If this option doesn’t meet your needs, you can explicitly name a project (or projects) that must be built before your job is allowed to run. To set this:

1) Scroll down to the ‘Build triggers’ tab on the configure page.

2) Select the ‘Build after other projects are built’ checkbox. This will bring up a text box where you can list any number of projects.

Utilized properly, the build triggers and advanced project options should allow you to organize your jobs into a schedule. Tip, if you need even more control over your build schedule, there are plenty of scheduling plugins available. To add plugins to Jenkins, simply:

1) Open the ‘Manage Jenkins’ screen.

2) Click the ‘Manage Plugins’ link.

3) Open the ‘Available’ tab and select the appropriate plugins from the list.

Not yet using uberSVN? It’s free to download, free to use, and is seamlessly integrated with Jenkins. Simply visit http://www.ubersvn.com/ to get started. A professional support option for Jenkins is also available.

Polling Subversion with Jenkins: The Quiet Period

Ever hit ‘Enter’ on your ‘SVN Commit’ command only to realise you’ve forgotten to include some files? In Apache Subversion, it’s not unusual for one commit to be quickly followed by another, as users realise their mistake. If you’ve configured Jenkins to poll Subversion for changes, this can result in broken builds and premature email notifications about build failures. Thankfully, if you’re a Jenkins user, there’s a ‘quiet period’ feature that can be activated to provide some breathing space between performing a commit, and Jenkins generating a build. If you’re using uberSVN, this is simply a matter of checking the right tickbox.

Note, uberSVN is free to download and free to use. If you’re not already using uberSVN, you can get it for free from http://www.ubersvn.com/

To introduce a ‘quiet period’ to your Jenkins workcycle, you must first create a job and configure it to automatically poll your Subversion repository. Once your job is up and running:

1) Open the Jenkins tab of your uberSVN installation and select the job you want to add the ‘quiet period’ to.

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

3) In the ‘Advanced Project Options’ tab, select the ‘Advanced…’ button.

4) Select the ‘Quiet period’ box and enter the number of seconds Jenkins should wait before generating a build.

Your Jenkins job will now schedule a build, but then wait 20 seconds before actually beginning to build.

Want to learn more about Jenkins jobs and polling? We have plenty of free tutorials you may be interested in:

Getting Started with Jenkins in uberSVN
Polling Subversion with Jenkins
Advanced Subversion Polling with Jenkins: File Fingerprints
Polling Subversion with Jenkins: More Options

If you need extra help with Jenkins, we also offer a professional support option that includes 24-by-7 online, phone and email support, guaranteed response times and automated delivery of fixes and upgrades.

Polling Subversion with Jenkins: More Options

Not only does uberSVN, the open ALM platform, make Apache Subversion easy, but users can leverage the functionality of other tools without even leaving their uberSVN installation. We’ve already looked at configuring Jenkins to poll an Apache Subversion repository, and using Jenkins’ file fingerprinting functionality. In this post, we’ll show how Jenkins’ polling functionality can be further configured to perform the following tasks:

  • Automatically sending out email notifications about broken builds.
  • Archiving specified artifacts whenever a new build is created.

Email Notifications

Jenkins can be configured to send email notifications whenever a build becomes unstable, fails, or returns to stable. uberSVN makes this configuration easy:

1. To get started, select the ‘Jenkins’ tab followed by the Jenkins job you previously setup to poll Subversion.

2. Select the ‘Configure’ option from the Jenkins side-menu.

3. Select the ‘E-mail Notification’ checkbox, enter the appropriate email addresses and click ‘Save.’

And that’s it! Now, whenever there are problems with your builds, Jenkins will automatically send out email notifications, allowing you to identify problems early.

Archive Artifacts

Jenkins can also be setup to archive certain ‘artifacts’ (i.e any results of your build process) whenever a new build is created. The advantages of archiving artifacts is that they’re easily accessible via uberSVN’s interface, and you only have to setup backup on your master.

1. Repeat steps 1 and 2 to open the ‘Configure’ screen of the Jenkins job that will be in charge of archiving.

2. Select the ‘Archive the artifacts’ option.

3. Now it’s time to specify which artifacts to archive. If you just want to archive one file, enter that artifact’s name and location. For example, to archive the Project Wiki text file in the trunk directory, enter:

trunk/Project Wiki.txt

Alternatively, you can configure Jenkins to archive every file of a particular format. If you wanted to archive every text document in the trunk directory, you would enter:

trunk/*.txt

Or, if you wanted to archive every .zip file in the tags directory, the command is:

tags/*.zip

4. At this point, you can optionally instruct Jenkins to overwrite previous artifacts by selecting the ‘Discard all but the last successful/stable artifact to save disk space’ option, which is accessible through the ‘Advanced’ menu.

5. Once you are happy with the changes you have made, click ‘Save.’

6. To see archiving in action, make some changes to the files you’ve configured Jenkins to archive and commit them back to the repository.

7. Once Jenkins has polled Subversion and created a new build, you will see new artifacts at the job’s status page.

8. Click on an archived item, to see its contents.

Need some extra support with your Jenkins+uberSVN installation? We offer Professional Support for Jenkins that provides:

  • 24-by-7 online, phone and email support.
  • Guaranteed response times.
  • Automated delivery of fixes and upgrades.
  • …and more!

Top 10 Features of uberSVN

uberSVN is a platform based on the world’s most popular version control system, Apache Subversion. uberSVN users have the freedom to pick and choose their favourite open and closed source components, ultimately building their own customized, complete ALM platform for Subversion. uberSVN has won a string of industry awards, and has received some fantastic feedback from its users base. Still not convinced? In this post, we’ll run through our top ten features of uberSVN!

1. Easy to Install

uberSVN assumes no prior knowledge of Subversion, making it the ultimate beginner-friendly Subversion GUI. To install uberSVN, you simply need to set the installation directory, the repository storage location, and enter your uberSVN registration key (don’t worry, this is free!)

2. Easy to Administer

With its focus on ease of use, the main uberSVN dashboard offers an at-a-glance insight into your repositories, and is divided into four main areas:

  • Tabs – These allow you to get further information on the different repositories, users and teams, as well as providing easy access to the integrated uberAPPS store, where you can download Jenkins, purchase professional support, order uTest services and more!
  • Activity Stream – This displays all the latest actions performed across your repositories, including commits, administrative changes, and social activities, such as status updates from other team members.
  • List of repositories – This section displays all the repositories that have been added to your uberSVN installation. ‘Favourite’ repositories are also displayed in a separate tab, for easy access.
  • Quick Links – This section links to certain areas by default (uberSVN.com, WANdisco.com etc.) Use the ‘Edit these Quicklinks’ option to tailor these links to suit your own project’s needs.

3. In-the-wild testing, without even leaving your installation!

uTest is the world’s largest software testing marketplace, and its comprehensive range of testing types for web, desktop and mobile applications can be purchased from inside your existing uberSVN installation. Simply visit the uberAPPS tab in uberSVN, select uTest Express from the app store, and follow the on-screen instructions to recruit real-life testers for your app. Crowdsourced software testing couldn’t be easier!

To see how easy it is to add uTest’s software testing services to uberSVN, visit our ‘Adding uTest to uberSVN’ post.

4. Continuous Integration Made Easy

But it doesn’t end there! uberSVN users can also download the popular Jenkins continuous integration server from inside the uberAPPS store. When downloaded through uberAPPS, Jenkins integrates seamlessly with your uberSVN repositories, giving users easy access to Jenkins functionality, including automatically performing builds, initiating tests, notifying users, rolling changes back and forth, and the ability to schedule, monitor and manage external, time-based cron jobs. All this functionality can be downloaded and implemented without ever leaving uberSVN. If you need some additional help with your Jenkins installation, existing uberSVN support customers can purchase professional Jenkins support as a bolt-on.

5. Pre-Integrated with Latest Subversion Binaries

We know that keeping up with the latest open source releases isn’t always easy, but uberSVN not only alerts you when a new release is available, it makes updating Subversion and related components as simple as a few mouse clicks. Simply click on the ‘Administration’ tab, and select the ‘SVN Switch’ option to bring up a screen where you can select the latest Subversion binaries, automatically updating all of your uberSVN repositories in the process.

6. Code-Free Subversion

“The software itself is amazing, the GUI is so user friendly that anybody could do it.” – Customer feedback.

Subversion can place practically any project under version control (text documents, graphics, sound files) not just source code! But, we know that getting to grips with Subversion from the command line can be tricky for non-coders. With that in mind, we designed uberSVN to be Subversion made easy. In fact, we’re convinced that when used with a great Subversion client like TortoiseSVN, you can use Subversion without even writing a single line of code (check out our Non-Coders Guide to Subversion if you don’t believe us!)

7. It’s Built on Subversion

It may not be the only version control product on the market, but at WANdisco, we believe Subversion is the best of the bunch. Accepted into the Apache Incubator in 2009, Subversion is an established open source solution with a vibrant and helpful ecosystem of users who can be contacted for advice via mailing lists and forums, alongside the option of professional support. And, with the recent release of Apache Subversion 1.7, there’s never been a better time to start using Subversion.

8. Build the ALM Solution you Want

Why choose between a closed source ALM solution, and hand-crafting your own SVN-based platform entirely from scratch? uberSVN gives you all the freedom of a homegrown solution, but with the seamless integration you’d expect from closed source ALM – not to mention the option of professional support, should you ever need it. uberSVN users have the freedom to select apps from the uberAPPS store, taking advantage of our seamless integration and easy upgrades, or they can use their own open and closed source components – the choice is entirely down to the user.

9. Subversion Made Social

In modern IT organizations, it’s common practice for development teams to be working on multiple projects, across multiple repositories; and keeping track of who is doing what, can become a challenge. With this in mind, uberSVN combines social networking functionality and software development, with integrated Twitter and Facebook-like capabilities. Each team has its own home page, complete with profiles of each team member and the different repositories they’re working on, and social activities can be seen at-a-glance, from the main dashboard.

10) …..and it’s free!

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

Congratulations, The Chimney House!

At WANdisco we’re busy putting the final touches to an update for uberSVN’s Chimney House release, so it only seems fitting to congratulate our friends at The Chimney House venue, who have just been named one of the ‘most creatively designed boardrooms’ in the world!

Google may name their Android releases after desserts, and Apple name their releases after big cats, but as uberSVN is developed entirely in Sheffield, UK, we thought it was only fitting to name our releases after all our favourite Sheffield pubs and venues. The latest release of our award winning platform is named after The Chimney House venue in Kelham Island, Sheffield. After celebrating the release of uberSVN Chimney House at the venue, we’re excited (but not surprised!) by the news that The Chimney House came in at number two in eVenues’ list of ‘The World’s Most Creatively Designed Boardrooms.’

“While most of the creative boardroom designs sport a sleek futuristic look, it was refreshing to find the Sheffield meeting room at a UK venue called The Chimney House,” said eVenues, about their decision. “The red-brick walls, hardwood floors and salvaged furniture and decor give the place a welcoming, “lived-in” feeling which is sure to make anyone feel at home the moment they walk in.”

Coming in at number two, The Chimney House beats venues in Baltimore, Cape Town, Berlin and Sweden.

“We took the step of naming releases of uberSVN after local venues to show our support for the local area, so I’m really pleased to see a Sheffield venue being listed in a worldwide poll,” said David Richards, CEO and co-founder, WANdisco. “Congratulations to all our friends at The Chimney House!”

uberSVN’s Chimney House update is already available through the recently-launched Latest Release Channel. Visit the press release to find out more.

WANdisco Announces Free Webinars for SVN Community

We hope you’re enjoying our bi-weekly free Subversion webinars! Thank you to everyone who has attended and sent us feedback on what they enjoyed, and what they’d like to see more of. Based on your feedback, we’ve devised another set of free training webinars for the Subversion community.

Here’s what’s coming up over the next couple of months (don’t forget, it’s free to register for any of our Apache Subversion webinars):

1) Hidden Subversion – get ahead of the game, as we share some tricks and techniques that many Subversion users aren’t even aware of.

2) Locking – we cover the Subversion Lock command in detail, including:

  • What is a lock?
  • How do you lock and unlock files?
  • Best practices for avoiding lock conflicts

3) Using Repository Browsers – drill down into the functionality of the Repo Browser, in this one-hour course.

4) Subversion Difference Command – get an overview of the various ways Subversion can compare files and generate meaningful reports.

5) Hook Scripts – these server-side executables can be used for a variety of tasks, including:

  • Automatic email notifications
  • Checkin content validation
  • Automatic backup
  • Specific access control

6) Introduction to uberSVN – an introductory webinar for uberSVN, the open ALM platform for Apache Subversion that’s easy to install, easy to use and easy to extend. This webinar will cover uberSVN’s core capabilities, including:

  • Installation and setup
  • Simplified repository creation and management
  • Team and user administration
  • Social coding capabilities
  • Extendibility with your favorite ALM tools

7) Access Control option with Subversion – need to control access to Apache Subversion repo information, but not sure which option is right for you? This session will weigh up the pros and cons of:

  • Subversion Access Control
  • Hook Scripts
  • uberSVN
  • …and more!

8 ) Branching and Merging – get an intro to the basic concepts of branching and merging, including when to perform a merge and create a branch, the different merge types, and some all-important best practices.

9) Subversion Properties – everything you need to know about SVN Properties! This one hour course will cover:

  • Defining properties
  • Property and “Standards and Procedures”
  • Property name rules
  • Automatic Properties
  • Recursively defining properties
  • ….and more!

Places are limited, so register now to avoid disappointment! And don’t forget to Contact Us if you have any comments, questions or suggestions for future webinars!

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!

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

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.