Projects/Archipel

edit
revisions

what's new
search
help

kiwi


Archipel Software Configuration Management

Archipel aims at bringing a simple and flexible version control software that fits a distributed programming model. It is based on the concept of undoable commands (aka. deltas), which are either inferred from the file system state or explicitely executed, and then logged to a database (the repository).

From Archipel's perspective, version control is simply a generalization of an undo mechanism, where deltas are simply serializable undoable commands. In this respect, Archipel also aims at providing a flexible framework for building specific version models.

Current status update (dec 2005) : as this wiki page was linked from wikipedia, I got some attention on Archipel. The project has been stalled for a year now, but I would be really interested in resuming it. Latest sources can be accessed from http://software.type-z.org/downloads, and if there is somebody interested in working on it with me, I will resume the project.

Features:

  • Supports text and binary files
  • Detects change, move, copy
  • Simple command line usage
  • Supports file and directory annotations
  • Human-readable and program-parsable output
  • Versions are SHA-1 signatures
  • No annoying .CVS-like file in every dir
  • Distributed development through HTTP, FTP, NFS, etc.

What makes Archipel special:

  • Simple to install and use
  • Can add specific deltas for refactoring operations
  • Automagically detects file and directory changes, copies and moves
  • Can be easily used to set up a distributed version control system, adequate to the open source development model
  • Repository is stored in a queryable RDF database
  • Deltas (changes) are represented in an OO way, which allows user to create new deltas, specific to their version model.

Related documents:

To sum up Archipel goals:

  • Provide a simple, powerful, modern revision control system that fits open-source distributed development
  • Provide a flexible framework on which advanced software configuration management can be built.

References

ArchipelDeltas, presents a list of current deltas available in Archipel.

Here is a short list of papers which participated in the development of Archipel :

Here are some articles/pages of interest:

Here is a list of related software:

  • Monotone, a distributed version control system that uses SHA-1 signatures as version identifiers. I actually liked this idea very much, and decided to use it in Archipel.
  • Arch, a distributed version control system that can use FTP or HTTP for communicating patches. I liked its flexibility and shell integration, but found it complicated and intrusive.
  • DARCS, a version control system which uses different types of deltas. For instances, there is a delta for replacing the occurences of a string in text files. This is where I realized that version control deltas were simply serializable and undoable commands.
  • PRCS, a version control system which I used and really liked for its cleanliness and simplicity. Sadly, it does not support distribution, FTP or HTTP repository checkin and checkout, or binary files. Otherwise, it would be just great.

Here are the software used by Archipel:

  • Python, is the main language in which Archipel is written
  • Redland is the RDF library used to store the deltas
  • GNU diffutils provide the indispensable diff and patch programs.
  • BSDiff, apparently the most performant binary diff utility. You can check BDiff too, but it seems to rock less.
  • File, an ubiquitous utility that can guess a file MIME-type and encoding.
last modified on November 11, 2007, at 11:06 AM

© type-z.org and its contributing authors, 2001-2004.
Content is licensed under a Creative Commons License.