I have what you would call a love/hate relationship with Version Control Systems. On the one hand, it is oh so nice to be able to revert back to a working version of your document when you accidentally make way too many mistakes, and it no longer works. But on the other hand, it is a total pain in the ass.

I am duty bound to tell you that if you are doing much of anything involving code, you need to be using some sort of Version Control, however I am not going to ram Subversion or Tortoise SVN down your throat. I understand why programmers use them, and I have used them myself in the past. Since I try to live the whole “Least Amount Of Administrative Effort” thing, I just really don’t like them. Let me explain.

Ok, setting up full on Version Control makes sense if any of the following are true:

  • You spend a large portion of your day writing code (like your job title is “programmer” or something similar)
  • You spend more time fixing things you break while writing code, than writing code
  • Anyone else is going to suffer consequences if you totally wreck some code
  • Someone else is going to maintain and administer the Version Control System
  • You work on files that multiple other people also edit

However it does not make sense if any of the following is true:

  • You write code for your own use only
  • You could care less if it gets broken or accidentally deleted
  • You don’t have time to administer or maintain a Version Control System

Even if all of the last bit are true for you, it is still a good idea to use Version Control. Wait, what?

Version Control is a process, and if done correctly it works very well. If done poorly it gives you a false sense of security. Version Control is not necessarily a software package or commercial system.

If working with end users for all these years has taught me anything it is this; if a system is easy to use (especially if you don’t have to actually do anything) it will get used, if it is complicated (or time consuming) it will not get used. This also holds true (even more so in most cases) for the IT professionals I know.

Since don’t write enough code to make Visual Studio a wise investment, I use Notepad++, and unlike Visual Studio, I can take my IDE with me on a USB drive (Notepad++ Portable!). In the same vein, I don’t really write enough code to really justify setting up and maintaining a Version Control System, so I do it with Notepad++. Least Amount Of Administrative Effort.

So here is my solution:

I use the Backup settings built into Notepad++ to take care of my Version Control. To set this up:

  1. Install notepad++
  2. Open Notepad++
  3. Select Settings > Preferences
  4. On the Backup/Auto-completion tab, change the backup setting from None to Verbose

If you change nothing else there, now when you save your file, Notepad++ will automatically create a copy of the file without the changes since the last time you saved it. The copy will also be saved in a subfolder (named nppBackup) in the same folder where the document is saved. The copy will be named FileName.Extension.Date_Timestamp.bak by default. So a file named “test.vbs”, saved today would have a name similar to “test.vbs.2009-06-29_151927.bak”.

Cumbersome to be sure, but I am guaranteed to use it every time I work with a document.

Please don’t mistake this for something it is not. This is not a Version Control System. You do not check files in or out, and it doesn’t differentiate who made what changes, all it does is save every iteration of your document. It is Version Control in the truest sense of the term.


  • Twitter
  • StumbleUpon
  • Slashdot
  • Technorati Favorites
  • Facebook
  • Digg
  • Delicious
  • LinkedIn
  • Fark
  • Google Bookmarks
  • Google Reader
  • Windows Live Favorites
  • MySpace
  • Yahoo Bookmarks
  • Blinklist
  • Faves
  • Netvouz
  • Propeller
  • Reddit
  • Simpy
  • Spurl
  • WordPress
  • Yahoo Buzz
  • BibSonomy
  • Share/Bookmark