TFS Frustration, Returning to Subversion

After almost a year of frustration with personal and professional projects utilizing TFS (Team Foundation Server), I have decided to return my personal projects to Subversion.  The time, effort, and the costs are far to high for me to use TFS on my personal projects.  It is somewhat sad, as the potential with TFS is massive, but the core element, the source control, has failed me too many times and ate up too much time for me at this point.

With that in mind, I present my most recent re-diving into Subversion for my source control.  I’ll be giving TFS another go in a few months, especially when VS 2008 and SQL Server 2008 are released, but for now it is good ole’ reliable Subversion.

To get Subversion up and running nice and quick like, follow these turbo boosted instructions.

First download the following:

  1. Head over to the main Subversion site at Tigris and download the latest copy of Subversion.
  2. After that I grabbed a download of the latest TortoiseSVN for Explorer Integration.
  3. Last I picked up ankhsvn also on Tigris.  If you want to keep up with happenings for ankhSVN check out Arild Fines Blog.

Once those are downloaded get to installing.  An even faster way to setup Subversion and TortoiseSVN is also available via SVN-1.  It is a single click install basically, well that’s how it’s advertised but there are some extremely easy steps that need clicked through.  If you want to use this instead of installing the items separately that is fine, just make sure to grab ankhSVN above to follow the rest of the steps.  I personally like to install the packages separately so that I am intimately familiar with what is and is not actually being installed.

  1. Install Subversion.
  2. Install TortoiseSVN.
  3. Install ankhSVN.

With those installed it is now time to setup the repository and get some source code under source control.  The following instructions are also shown in this video.

  1. Create a new directory, ideally something like SubversionRepository so it is easy to tell what the directory is for.
  2. Right click on the newly created folder and select “Create Repository Here”.
  3. A prompt will come up asking to choose either “Native File System (FSFS)” or “Berkeley database(BDB).  I always choose the native file system.  When complete you will receive a dialog that states, “The Repository was successfully created.”
  4. I always check the repository, just to make sure I had everything clicked on correctly.  In the repository directory you should see the following folders;  conf, dav, db, hooks, locks, and the following files;  format and README.txt.  DO NOT PUT THINGS IN THIS DIRECTORY, JUST LEAVE IT AS IS!
  5. To do a full import of items into the source repository navigate to the directory that has the project files in it.
  6. Right click either on the root, or individual files and select “Tortoise SVN” and then the “Import” option.
  7. A dialog will appear.  Enter the proper Url, the image has an example of a physical file location, and click “OK”.
  8. Another dialog will come up to show the status of the files being imported.  When it finishes just click “OK” again.  The files and folders are now in the repository.
  9. Check out the drive space now, I do it with DiskView Visualizer since it’s ridiculously easy to get a view of space changes in a matter of seconds.  Now that you’ve added something there should be a few MB in the db directory, up from the default standard load db directory of about~100k or so.

Now let’s say someone else needs to get a copy of the project folders to work with.  This is unbelievably easy, so don’t think it didn’t happen once you’ve done it once.

  1. First right click anywhere in a folder, on a drive within the Windows Explorer.  On the right click menu “SVN Checkout…” should be available, select it.
  2. The check out dialog should now appear.  Enter the information pertinent to your installation and project like what appears in the screen shot.  Click “OK” when you’ve entered all of the information.
  3. If you haven’t created the check out directory you will be prompted by TortoiseSVN to create them.
  4.  Once the checkout is finished, you will be provided a dialog as shown in the following screen shot.  Click “OK”.
  5. After all this you will see the directory that was added in the folder structure as displayed in the following screen shot.

My next Subversion Tutorial will cover some of the steps to update, check file differences, and commit changes back to the repository.  Stay tuned!  Smile [:)]