[darcs-users] Pijul 0.2

Pierre-Étienne Meunier pierre-etienne.meunier at aalto.fi
Tue Feb 2 07:53:25 UTC 2016

Hi darcs fellows,

Florent Becker and myself are proud to announce the second public release of Pijul, a new version control system aiming to be easy to learn and use, distributed, and fast.

Pijul is based on a theoretical model of patches described here. At the conceptual level, it merges concepts from category theory, and the patch theory developed by darcs. At the practical level, a number of new ideas allow for a quite fast system.

A lot has changed in this second release. Pijul has been completely rewritten in a new language, Rust. While rewriting, we have also focused on a more limited interface, to try and ensure correctness.

What we have

Here is what we have in this release (modulo bugs, of course):

 -  Basic file system operations: add, remove, mv, ls.
 -  Record, for text files only.
 -  Conflict handling, at the line level.
 -  Pull from local repositories, ssh and http.
 -  Push to local repositories, ssh.
 -  Repositories robust to hash function changes (see Layout of a repository).

What is missing

The most crucially missing feature is unrecord, with rollback a close second, but there is no fundamental problem with this. Other features include blame/annotate, especially in the case of conflicts (this is probably an easy project to start contributing).

libpijul would probably also benefit from a cleaner code separation between algorithms and storage, which we are currently doing. For performance reasons, version 0.2 is tightly bound to LMDB, taking advantage of very specific features. However, some of the functions could easily be move out.

We’ve also started a “hub-like” project called the nest, to be released in the first semester of 2016.

Pierre-Étienne Meunier

More information about the darcs-users mailing list