Version Control:

Version control systems help track changes to a similar set of files that are changed on different systems. This could happen when many people are working on the same set of files, as is often the case with software development. But version control is not limited to only programming related tasks. This could also be the case if you use more than one computer and have a set of files that you edit on all of those computers. One example is a set of notes on a topic you're working on.

Version control systems work best for text based files and smaller binary files. For large binary files, you might be better off using a separate system (maybe rsync?) to synchronize changes.

If you're new to version control systems, mercurial and git are two great options to choose from. Both of these are distributed version control systems (DVCS) which means there is no central repository. In older systems, you would have to have access to a central repository in order to synchronize changes. This was inconvenient if you were offline, or if the server was offline. With a DVCS, you can still synchronize changes in either case.


Go ahead and grab one. Mercurial is available here:

If you're on Windows, I recommend using the TortoiseHG version. This makes the commands available via a right click in Windows File Explorer. This is more intuitive to a new user.

Other guis are collected here:

With Murky getting good reviews for Mac:


There are many great resources out there for learning to use a version control system. The Mercurial book is a great one:

A good place to start:

Older notes:

\*2009.01.16 15:45:34 YAY VERSION CONTROL! ok... Version control systems are great. These days there are many to choose from.

The basic idea is that you can keep track of changes to a collection of files. This helps with keeping information backed up and in sync. It also allows you to see the history for a set of files.

Subversion and Mercurial are two great choices. I've been using mercurial lately and have been happy with it. I like knowing it is written in Python in case I have the time or need to get in and start tweaking it.

Thanks Mercurial Crew!!

\*2009.01.31 12:20:32 Now the fine print...

Strictly speaking, you do not need a version control system to keep a journal. Nevertheless, taking the time to learn about them is well worth the effort. Without a version control system in place, you need to make sure that your backup habits are impeccable.

Although backups are still important with version control, version control allows you to run separate instances of your journal (Context) and then merge in the changes between them all. This is convenient if for some reason the system with your main, most up to date instance, becomes unavailable. Also, if you are actively using more than one instance, you quickly know if one is out of date.

Backups, on the otherhand, are very easy to forget until they are needed. If they are out of date at that point, it may be too late to correct the problem and recover the recent changes.