What is a SVN repository?

Many readers may have heard of the phrase “SVN repository”, but may be unsure exactly what it is. Maybe you have a bit of an idea, but don’t know where or why you would need to use one. This post explains in straightforward terms what is a SVN repository, and gives you a basic understanding of how it works and when and why you should use one.

What does SVN stand for?

Subversion Version Control SystemSVN is a shorthand abbreviation of the name “Subversion”. For those who have not heard of it, Subversion is a powerful open-source version control system that is typically used to manage the collections of files that make up software projects. However, a SVN repository it may actually be used for managing any collection of files that are changed or modified over time.

Subversion was initially developed by CollabNet as an alternative to the earlier CVS version control system, which suffered a number of limitations, such as being unable to move or rename files. These days Subversion is actively developed and maintained by the Apache Software Foundation and you can download SVN for most platforms for free.

The SVN moniker itself actually comes from the name of the command that is typed when accessing SVN repositories via the command-line of a computer, hence it is common practice to use the terms ‘svn’ and ‘subversion’ interchangeably.

SVN repositories in a nutshell

In simple terms, a SVN repository (or Subversion repository) is a collection of files and directories, bundled together in a special database that also records a complete history of all the changes that have ever been made to these files.

Conceptually, a SVN repository is similar to a folder or directory on your computer that may contain a collection of assorted, but related, files and directories. In fact, a SVN repository is typically used to store all the files and directories that make up a single project, or perhaps even a collection of interrelated projects.

However unlike a normal folder on your computer that stores only the most recent copy of a collection of files, a SVN repository also stores the history of those files.

How does a SVN repository work?

One way to think of a SVN repository is by imagining a series of snapshots, called revisions, that record copies of all the files and directories that make up a project at specific points in time. However instead of storing full copies of each revision of every file (which would very quickly require a huge amount of disk space!), a SVN repository only records the changes or differences between files at each revision. These differences are known as a changeset.

A SVN changeset consists of a description of all the additions, modifications and deletions to files within the project required to go from one revision to the next, along with a human-friendly text description that reports the nature of the changes. The collection of all changesets in a project is what makes up a SVN repository.

By drawing on this database of changesets, the Subversion tools are able to recreate exactly any revision of any file in the SVN repository, at any point in time. Not only that, it can do so by using far less disk space than would be required if full copies of each of the file revisions were stored instead!

What can I use SVN repositories for?

By storing a complete history of every change ever made within a project, it is possible to use a SVN repository to do many things that would be difficult or impossible to do with only copies of the project files alone.

  1. For example, a SVN repository can be used to quickly “go back in time” and restore all the files of a project to an earlier point in history. This can be very useful if a bug or fault is detected in a new version of the files and you wish to revert back to a previous version that is known to be stable.
  2. A SVN repository can also be used to compare different revisions of a file or collection of files, perhaps to review changes or identify possible causes of a newly detected bug. The revision log also makes it easy to keep track of the reasons why a certain change was made.
  3. By having a centralised SVN repository, it is possible for you to have multiple developers working on the same project. Everyone in the team can be assured they are working on the latest version of project files, and also be confident that their changes will not be accidentally corrupted or lost by someone else!
  4. Some of the more advanced uses allow for multiple versions of the same files to be maintained within the one SVN repository! For example, it is possible to tag and keep track of specific project milestones, such as product releases, so it is possible to quickly revert back to this known version if someone discovers a problem in the future. Similarly, the branching and merging feature allows a change that fixes a bug in the current version of a file to be easily ported to a previous released version of the file.
  5. An additional bonus benefit of storing your project files in a SVN repository is that by doing so you immediately create an implicit backup of your data! So should your working copy accidently get corrupted or destroyed for whatever reason, you can always recover the files from the SVN repository. Furthermore, if you use an online subversion hosting service then you have the additional benefit of protection against physical destruction and loss of your project data due to fire or theft of your working computer.

Where can I get a SVN repository?

To get started using Subversion, you first need to have a SVN server to host the repository. There are several ways to do this, depending on your technical knowhow and the benefits you wish to achieve by using it. For example, you can:

  1. Download the SVN tools and setup a server yourself. This is the traditional way to get started as the server is run on your own machine. However, managing this yourself can become difficult and risk-prone, especially should you wish to start granting other people access to collaborate in your SVN repository.
  2. Using a SVN hosting service to serve your SVN repository is often a simpler and faster alternative. In this case, the more complex aspects of securing a server and providing authentication and access control for multiple users has already been done for you. There is also the added benefit of having an automatic off-site backup of all your data, a peace-of-mind that you would otherwise not have by hosting your own server.

Whatever solution you choose, once you start using Subversion the power of a SVN repository becomes apparent very quickly. Over time you will discover more and more ways that you can benefit from version control, and eventually you will begin to wonder how you lived without it!

What  uses have you found for your SVN repository?

Continue Readingred arrow

New ProjectHut Website and Plans Launched!

After many months of planning, design and implementation we are proud to unveil the brand new ProjectHut website!

New ProjectHut Website Gone is the old fixed-width website that has served us so well for the past six years – the new ProjectHut website has been completely redesigned from scratch to feature the latest in modern, mobile-ready responsive web design. The new layout will adapt dynamically to best fit the size of your browser, making the site easier to read on all mobile devices, tablets and conventional desktop browsers.

With the new look comes an improved layout and content to make it easier to understand the features and benefits of using ProjectHut for your projects. The Knowledgebase section has been revised and improved, and a completely new Software and Resources section added that contains instructions on where to find Subversion client software or IDE plugins for your Mac, Windows or Linux based development environment. Existing customers will also notice that the ProjectHut Member Center also has a new look with better integration with the main website.

Brand new plans with fantastic value!

New ProjectHut PricingCoinciding with the launch of the new website, we are also excited to announce a set of brand new ProjectHut Plans! All our plans now offer vastly increased storage quotas at significantly lower prices.

For example, our old Developer plan only offered 200MB storage space for $9.95, but the new Developer plan features a massive 1.5GB storage for only a low $9 per month!

In addition, we have also added brand new Corporate (15GB) and Enterprise (45GB) plans that offer much greater storage capacities for customers who have outgrown our previous packages.

Of course, all our plans continue to offer unlimited users and groups. Make sure to check out the new ProjectHut Pricing and Plans page for more details!

Free trial now available!

We are now offering customers who sign-up to ProjectHut for the first time the opportunity to try ProjectHut free of charge! Yes, for the first time ever, we are waiving charges for the first month’s service. You do not even need to enter any payment details when signing up!

If you have ever considered trying out our service but been unsure about what to expect, then now is the chance to try the full ProjectHut service completely free of charge! There is no obligation to continue beyond the trial period, so should you decide it is not for you at any time simply let us know and we will close the account. Of course, we do very much hope that you will decide to stay, and if so you will only be required to make a payment starting from the second month of service.

So, with nothing to lose and everything to gain, Sign Up Now to start using ProjectHut today!

Continue Readingred arrow

Bandwidth limits removed

Following an analysis of customer network usage patterns, we have decided to remove the transfer limits that previously applied to all ProjectHut plans. It turns out that these limits were never even close to being reached by any of our customers, and so in order to simplify the ProjectHut service they have been removed entirely.

Astute customers will have noticed that the “Monthly data transfer” and “Transfer limit reset” fields have been completely removed from the ProjectHut Control Panel. You can now use the service in a way that best suits your project workflow, without ever worrying about the possibility of encountering any limitations!

Continue Readingred arrow