Version Control: Do you need both TortoiseSVN and Subversion?

Installing a version control system for my local machine left me confused. Did I need Subversion and TortoiseSVN? If TortoiseSVN is only a “client” can it work without Subversion? If it can’t, why does TortoiseSVN allow me to create repositories without me having installed Subversion yet?

After having wasted a day googling, good sense prevailed and I mustered the courage to go through the FAQ (which thankfully is very clear and to the point). And voila!

So what did I learn? If you want a version control system for your local files and folders you only have to install TortoiseSVN. It has everything you need for creating local repositories on your hard drive, which can be accessed via file:///C:/YourProject. In this case the working folder (the ones you check-out & check-in) and the local repository (where version control data resides) are on the same machine – your personal computer.

Version Control for Local files & folders for a single user => TortoiseSVN

If however you need a version control system that would be accessed by a small team (of 2 or more users) you also need Subversion. Subversion is a source control “server” which allow multiple users and machines over a network to access the central shared repository in a safe and consistent manner. Your repository is now on a server. When using Subversion, you access your files via svn://server-ip/YourProject (or svn://localhost/YourProject if the server is running on your local machine). Subversion can be used via the command line, however TortoiseSVN for Windows provides a wonderful GUI that integrates with Windows Explorer.

Version Control for shared data over Network (multiple users) => Subversion (source control server) + TortoiseSVN (on each client machine)

You can avoid installing Subversion (server) by placing your local repository on a network drive (accessed via file:///server/sharedfolder/YourProject). This is however not a recommended approach (read FAQ or see the Mind Map below for ‘why’).

Do you need both TortoiseSVN AND Subversion

Mind Map: Explains if you need both TortoiseSVN and Subversion
Personally, only after I had installed and setup Subversion did I realize I didn’t need it. Oh well, I’m going to use it anyway! Feels cool :-o
Advertisements

8 thoughts on “Version Control: Do you need both TortoiseSVN and Subversion?

  1. quite Insightful..if i m not wrong, this may not be the first time you are hearing that, u have the knack of technical writing :)

  2. The difference wasnt quite clear to me.. Thanks for pointing it out. Command line FTW :) if you are into (vcs) version control systems, read about git. its pretty cool. its a dvcs (distributed vcs). The feature that I like is you have a local repository where you can incrementally commit your changes and once you think you are ready to commit a feature you can push your changes to the main repository.

  3. Preeti,

    Nice summary. Very useful. I been to a couple of organizations, some very large, that have resorted to emailing zip files. They have elaborate source control systems, but did not understand how to use them correctly. This has led to some battles, but once everyone understands the process, it becomes routine.

    You have a nice way of presenting new information. Way to go!

    -Scott

  4. @Scott, I’m glad you found this piece useful. The swapping of zip files is amusing, I can only imagine the state of their Inbox!

    About the large organizations, they sometimes forget that simply purchasing a tool is not sufficient. One has to learn to use it well for it to really made a difference. From my experience, it is very important to train each and every member on your team on how to use the source control system. Anyone who has worked in large teams knows the horrors of disappearing code when people break the rules!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s