Git is a distributed verision control system. Highly recommended. There is an excellent tutorial, or you can take a look at my notes (best viewed in Emacs org-mode). See git-publish.py for a useful Git public-repository setup script.

If you want a better understanding of the Git model, check out the Git Internals chapter of the Pro Git book.

I've published Git repositories for most of my more involved projects.

You can download a repo with

git clone http://www.physics.drexel.edu/~wking/code/git/<repo-name> <local-dir>

For example

git clone http://www.physics.drexel.edu/~wking/code/git/sawsim.git sawsim

Of course, traditional tarballs, zips, etc. are also available through the web interface.

There are many tools which use version control systems as storage backends for various utilities. For example, ikiwiki is a VCS-based wiki, and Bugs Everywhere is a VCS-based bug tracker.

I've also written up a few scripts to automate common Git tasks: