Git is a "directory content manager" that was designed to handle massive projects such as the Linux kernel with speed and efficiency. It falls in the category of distributed source code management tools and is similar to GNU Arch, Monotone, and BitKeeper. Every Git working directory is a fully-fledged repository with full revision tracking capabilities and is not dependent on network access to a central server.
CVS, GIT, and Mercurial as well as other well-known version control systems cannot version directories. In other words, you cannot add empty directories. A "workaround" for this issue is to use placeholder files that are placed into empty directories. These placeholder files can then be committed into the repository and will make sure that, upon checkout, the directory tree is entirely reconstructed. The problem with using placeholder files is that you need to create them, and need to delete them if they are not necessary anymore (because sub-directories or real files were added). With big source trees, managing these placeholder files can be cumbersome and error prone. MarkEmptyDirs can manage the creation/deletion of such placeholder files automatically. It creates placeholder files in all empty "leaf" directories. If later on new files or directories are put into such directories, the placeholder files are not necessary anymore, and are removed automatically.
Fossil is a distributed software configuration management/version control system built with reliability and ease of use on mind. It comes with integrated bug tracking and a wiki. It is distributed as a single static binary for easy installation and the ability to run in a chrooted environment. Other highlights include a Web interface, autosync, simple networking, and CGI support.