===============================
Checkpoint Media Archive System
===============================
------------
Introduction
------------
Checkpoint watches all the files in a directory (recursively), and allows you
to revert your directory to any point in the past that you did a 'commit' to
save your changes. This is useful for graphic designers, animators, musicians,
and anyone looking for an easy way to version large files.
A command-line-utility is included for regular users so they can periodically
save snapshots of their files and restore files from that history. Also, a
python API is exposed for developers to integrate into Content Management
Systems and other software requiring simple file versioning.
-----------------------------------------------------------------
What's a Media-Archive System? Is this a Version Control System?
-----------------------------------------------------------------
While excellent Version Control Systems such as Bazaar and Mercurial already
exist in python implementations, they are optimized for managing changes to
*source code* using *diffs*. They can and do handle binary files, but binary
file operations are not blazingly fast. From the Bazaar FAQ:
... [bazaar] is primarily a source code control system, not a
media archive system. So it is not a priority to support enormous
(hundred-megabyte) binaries or multi-gigabyte trees. There are other
tools better suited to that.
This is where Checkpoint fits in. Checkpoint was specifically designed to
quickly manipulate large binary files such as images, video, audio, and so on.
The other main difference between Checkpoint and a Version Control System
(VCS) is that Checkpoint detects your file changes *automatically*. In a VCS
you have to 'add' files to the repository using special commands such as `svn
add somefile.txt`. While those VCS commands are helpful in managing source
code projects to eliminate storage of intermediary files and generated files,
in a Media-Archive System hard drive space is sacrificed for ease of use.
Also of great importance, the Checkpoint command-line utility is incredibly
easy to understand, so regular users don't have to learn any complex VCS
terminology or concepts.
----------------------
Installation and Usage
----------------------
Visit the Checkpoint `project home <http://checkpoint.googlecode.com>`_
for more information.