
checkpoint
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.
Checkpoint was specifically optimized to quickly manipulate binary files.
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 complex VCS terminology and concepts.
Installation and Usage
Check out the GettingStarted guide for more information.
Project Information
- License: New BSD License
- 8 stars
- svn-based source control
Labels:
Python
Versioning
Utility
API