checkpoint


Checkpoint is a simple media archive system, useful for both users and developers

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

Labels:
Python Versioning Utility API