<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pijul - A Distributed Version Control System</title><link>http://pijul.org/</link><description>Recent content on Pijul - A Distributed Version Control System</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 15 Jan 2021 00:00:00 +0000</lastBuildDate><atom:link href="http://pijul.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Implementing cross-process Sanakirja locks</title><link>http://pijul.org/posts/2021-01-15-sanakirja-locks/</link><pubDate>Fri, 15 Jan 2021 00:00:00 +0000</pubDate><guid>http://pijul.org/posts/2021-01-15-sanakirja-locks/</guid><description>&lt;p>I just finished implementing a non-trivial bit of Pijul: cross-process locks for Sanakirja databases.
In this post, I explain how it works.&lt;/p></description></item><item><title>How to survive?</title><link>http://pijul.org/posts/2021-01-05-how-to-survive/</link><pubDate>Tue, 05 Jan 2021 00:00:00 +0000</pubDate><guid>http://pijul.org/posts/2021-01-05-how-to-survive/</guid><description>&lt;p>Since we released the alpha version of Pijul 1.0 two months ago, a lot of things have happened.
In this post, I want to share some of them, and give a roadmap for the next few weeks or months.&lt;/p></description></item><item><title>Commutation and scalability</title><link>http://pijul.org/posts/2020-12-19-partials/</link><pubDate>Sun, 20 Dec 2020 00:00:00 +0000</pubDate><guid>http://pijul.org/posts/2020-12-19-partials/</guid><description>&lt;p>I just finished the implementation of an important feature of Pijul: clones, pushes and pulls on partial repositories. In this post, I explain why this matters.&lt;/p></description></item><item><title>Announcing Minus, a cross-platform pager</title><link>http://pijul.org/posts/2020-12-09-minus/</link><pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate><guid>http://pijul.org/posts/2020-12-09-minus/</guid><description>&lt;p>This is a guest post by Arijit Dey, introducing a cross-platform &lt;em>paging crate&lt;/em> he wrote, which will allow Pijul to work equally on all platforms.&lt;/p></description></item><item><title>Towards 1.0</title><link>http://pijul.org/posts/2020-11-07-towards-1.0/</link><pubDate>Sat, 07 Nov 2020 00:00:00 +0000</pubDate><guid>http://pijul.org/posts/2020-11-07-towards-1.0/</guid><description>&lt;p>After fixing the performance and scalability problems, we&amp;rsquo;re on our way to getting a stable Pijul. In this post, I explain what I&amp;rsquo;ve been up to in the recent months.&lt;/p></description></item><item><title>Pijul 0.12</title><link>http://pijul.org/posts/2019-04-23-pijul-0.12/</link><pubDate>Tue, 23 Apr 2019 10:52:09 +0100</pubDate><guid>http://pijul.org/posts/2019-04-23-pijul-0.12/</guid><description>&lt;p>We released Pijul 0.12 yesterday. This is a really exciting time for
the project, as we have reasons to believe that all the algorithms are
now in a pretty good shape.&lt;/p></description></item><item><title>Sanakirja gets its full concurrency model</title><link>http://pijul.org/posts/2019-03-20-sanakirja-0.10/</link><pubDate>Wed, 20 Mar 2019 15:20:00 +0000</pubDate><guid>http://pijul.org/posts/2019-03-20-sanakirja-0.10/</guid><description>&lt;p>I just fixed a few remaining bugs in Sanakirja, the database backend
behind Pijul, and took the opportunity to update its concurrency
model.&lt;/p></description></item><item><title>Pijul 0.11</title><link>http://pijul.org/posts/2018-11-20-pijul-0.11/</link><pubDate>Tue, 20 Nov 2018 22:26:49 +0000</pubDate><guid>http://pijul.org/posts/2018-11-20-pijul-0.11/</guid><description>&lt;p>I&amp;rsquo;d like to announce a new release of Pijul, version 0.11. This release fixes a large number of bugs, follows evolutions in the Rust ecosystem (Tokio), integrates better with existing software (SSH proxys and config files), and introduces an important feature of Pijul: /partial clones/.&lt;/p></description></item><item><title>Pijul 0.10</title><link>http://pijul.org/posts/2018-04-21-pijul-0.10/</link><pubDate>Sat, 21 Apr 2018 15:13:57 +0200</pubDate><guid>http://pijul.org/posts/2018-04-21-pijul-0.10/</guid><description>&lt;p>I&amp;rsquo;m pleased to announce the new release of Pijul, version 0.10. This release has been a long time coming, but brings in an important number of new features and stability enhancements.&lt;/p></description></item><item><title>buildRustCrate just got integrated into nixpkgs</title><link>http://pijul.org/2017/12/12/buildRustCrate/</link><pubDate>Tue, 12 Dec 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/12/12/buildRustCrate/</guid><description>&lt;p>&lt;code>buildRustCrate&lt;/code> is a tool I wrote in the &lt;a href="https://nixos.org">Nix&lt;/a>
programming language to share build products across crates and across
versions of a single crate when compiling Rust code. The initial
motivation was to speed up deployment times when working on large
projects with lots of dependencies, such as &lt;a href="https://nest.pijul.com">the
Pijul Nest&lt;/a>.&lt;/p></description></item><item><title>New release of Thrussh, including support for agents</title><link>http://pijul.org/2017/12/06/thrussh-0.17/</link><pubDate>Wed, 06 Dec 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/12/06/thrussh-0.17/</guid><description>&lt;p>I&amp;rsquo;d like to announce a new version of Thrussh, which will hopefully
solve a number of problems people have been having with SSH support in
Pijul.&lt;/p></description></item><item><title>Downloads</title><link>http://pijul.org/downloads/</link><pubDate>Tue, 19 Sep 2017 21:57:58 +0200</pubDate><guid>http://pijul.org/downloads/</guid><description>From source $ cargo install pijul --version 1.0.0-alpha Using Pijul itself If you are lucky enough to already have one version of Pijul, here is how to check the sources out:
$ pijul clone https://nest.pijul.com/pijul/pijul Or, if you have an account on the Nest, via SSH:
$ pijul clone me@nest.pijul.com:pijul/pijul Other See the manual
Reporting bugs https://nest.pijul.com/pijul/pijul/discussions</description></item><item><title>FAQ</title><link>http://pijul.org/faq/</link><pubDate>Tue, 19 Sep 2017 21:56:45 +0200</pubDate><guid>http://pijul.org/faq/</guid><description>What is a version control system? A version control system is a piece of software that allows different authors to work collaboratively and asynchronously on a file, keeps track of their changes and alerts them when their edits are conflicting.
It can also be used by single authors to review and revert their changes.
It is distinct from a parallel editor, in which all authors edit the same file concurrently. In a parallel editor, the authors are forced to share all their edits with others, often restricting their creativity and causing data loss.</description></item><item><title>Community</title><link>http://pijul.org/community/</link><pubDate>Tue, 19 Sep 2017 21:47:36 +0200</pubDate><guid>http://pijul.org/community/</guid><description>The vision for our community borrows a lot from the Rust community.
Getting Started We currently try to maintain two communication channels:
#pijul, an IRC channel to ask any question about Pijul. discourse.pijul.org, a Discourse forum for lengthier discussions. Code of Conduct This code of conduct is largely stolen from the Rust Code of Conduct.
We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.</description></item><item><title>New release - Pijul 0.8</title><link>http://pijul.org/2017/09/14/pijul-0.8/</link><pubDate>Thu, 14 Sep 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/09/14/pijul-0.8/</guid><description>&lt;p>We&amp;rsquo;re proud to announce a new release of Pijul: version 0.8.&lt;/p></description></item><item><title>Updates on nest.pijul.com</title><link>http://pijul.org/2017/07/02/web-stack/</link><pubDate>Sun, 02 Jul 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/07/02/web-stack/</guid><description>&lt;p>As &lt;a href="//nest.pijul.com">nest.pijul.com&lt;/a> is slowly stabilising, I&amp;rsquo;d like to blog about a few lessons learnt during its development so far.&lt;/p></description></item><item><title>Pijul 0.4, Improvements and breaking changes</title><link>http://pijul.org/2017/04/02/pijul-0.4/</link><pubDate>Sun, 02 Apr 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/04/02/pijul-0.4/</guid><description>&lt;p>Today, we released a new version of Pijul. &lt;strong>Still alpha&lt;/strong>, but lots of updates. Also, still GPL2+ (as in version 0.3, but unlike before).&lt;/p></description></item><item><title>News of Sanakirja</title><link>http://pijul.org/2017/03/16/sanakirja/</link><pubDate>Thu, 16 Mar 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/03/16/sanakirja/</guid><description>&lt;p>We&amp;rsquo;ll release a usable version of Pijul later today. Pijul itself is in an alpha stage, but is based on a number of other things we&amp;rsquo;ve needed to write, among which a key-value store known as Sanakirja.&lt;/p></description></item><item><title>Pijul 0.3, our first bootstrapped release! Featuring nest.pijul.com</title><link>http://pijul.org/2017/03/16/pijul-0.3/</link><pubDate>Thu, 16 Mar 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/03/16/pijul-0.3/</guid><description>&lt;p>The pijul team is proud and happy to announce the first bootstrapped release of &lt;a href="https://pijul.org">pijul&lt;/a>, and of &lt;a href="https://nest.pijul.com">the Nest&lt;/a>, a hosting service for pijul repositories.&lt;/p></description></item><item><title>First usable Pijul</title><link>http://pijul.org/2017/01/10/first-working-pijul/</link><pubDate>Tue, 10 Jan 2017 00:00:00 +0000</pubDate><guid>http://pijul.org/2017/01/10/first-working-pijul/</guid><description>&lt;p>After several months of silence, I&amp;rsquo;m pleased to announce that we are starting to test the first usable version of Pijul.&lt;/p></description></item><item><title>The design of Thrussh</title><link>http://pijul.org/2016/07/20/thrussh/</link><pubDate>Wed, 20 Jul 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/07/20/thrussh/</guid><description>&lt;p>I&amp;rsquo;ve recently written an SSH library called &lt;a href="http://pijul.org/thrussh">Thrussh&lt;/a>, and I&amp;rsquo;ve also started to use it for actual tasks like replacing the SCP client in Pijul.&lt;/p></description></item><item><title>Sprint started!</title><link>http://pijul.org/2016/05/06/sprint-report/</link><pubDate>Fri, 06 May 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/05/06/sprint-report/</guid><description>&lt;p>I&amp;rsquo;m blogging live from the first Pijul sprint, at the Aalto Design Factory in Helsinki.
Feel free to stop by and say hello if you&amp;rsquo;re around!&lt;/p></description></item><item><title>Reorganizing libpijul</title><link>http://pijul.org/2016/04/09/reorganization/</link><pubDate>Sat, 09 Apr 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/04/09/reorganization/</guid><description>&lt;p>Now that Sanakirja is in a usable state, the main operation before we can start to use Pijul for other purposes than tests is to plug Sanakirja in. This post describes our strategy for doing this, and the difficulties we&amp;rsquo;ve had.&lt;/p></description></item><item><title>Sprint+Meetup</title><link>http://pijul.org/2016/04/02/sprint/</link><pubDate>Sat, 02 Apr 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/04/02/sprint/</guid><description>&lt;p>We&amp;rsquo;re happy to announce the first joint sprint with the darcs team, which will take place on May 6th, 7th and 8th in Helsinki, Finland. If you&amp;rsquo;re interested in using and/or learning Rust and Haskell, come hack with us!&lt;/p></description></item><item><title>Sanakirja 0.2</title><link>http://pijul.org/2016/03/24/sanakirja-0.2/</link><pubDate>Thu, 24 Mar 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/03/24/sanakirja-0.2/</guid><description>&lt;p>I just finished &lt;a href="http://pijul.org/sanakirja">Sanakirja 0.2&lt;/a>, available from our darcs repository, and soon on &lt;a href="http://crates.io">crates.io&lt;/a>.&lt;/p></description></item><item><title>Functional semantics in Sanakirja</title><link>http://pijul.org/2016/03/03/functional-database/</link><pubDate>Thu, 03 Mar 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/03/03/functional-database/</guid><description>&lt;p>I announced Sanakirja, our new database backend, on reddit and twitter, but so far I had not had the time to blog about it. This post explains some of the ideas behind this new crate.&lt;/p></description></item><item><title>Thoughts on branches</title><link>http://pijul.org/2016/02/15/branches/</link><pubDate>Mon, 15 Feb 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/02/15/branches/</guid><description>&lt;p>Since our release of Pijul 0.2, I&amp;rsquo;ve been working mostly on the biggest feature of Pijul 0.3: branches. In this post, I try to explain the current plan.&lt;/p></description></item><item><title>Pijul 0.2</title><link>http://pijul.org/2016/02/02/pijul-0.2/</link><pubDate>Tue, 02 Feb 2016 00:00:00 +0000</pubDate><guid>http://pijul.org/2016/02/02/pijul-0.2/</guid><description>&lt;p>We&amp;rsquo;re 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.&lt;/p></description></item><item><title>XKCD and Git</title><link>http://pijul.org/2015/10/31/xkcd/</link><pubDate>Sat, 31 Oct 2015 00:00:00 +0000</pubDate><guid>http://pijul.org/2015/10/31/xkcd/</guid><description>Seems like we&amp;rsquo;re not the only ones! Here is the original picture.</description></item><item><title>Contributor license agreement</title><link>http://pijul.org/cla/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://pijul.org/cla/</guid><description>Practical instructions If you contribute to Libpijul, we are asking you to allow us to reuse your work, including under a different license than the current GPL-2.0-or-later.
If you agree and have the right to do so, please add IUH7IMWES3KQTHVWA5UNHAO7QWVCC5PQJ6VLK3RC3T4F2MS74P3AC (the patch introducing the CLA) to the dependencies of your patches. Three ways to do it:
Add the following line to .pijul/config, before recording:
extra_dependencies = [ &amp;#34;IUH7IMWES3KQTHVWA5UNHAO7QWVCC5PQJ6VLK3RC3T4F2MS74P3AC&amp;#34; ] Add the following line in the Dependencies section of your changes:</description></item><item><title>Documentation</title><link>http://pijul.org/manual/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://pijul.org/manual/</guid><description>Coming soon. If you are interested in contributing, you can come on our discourse and ask anything, and contribute to our repository.</description></item><item><title>Model</title><link>http://pijul.org/model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://pijul.org/model/</guid><description>On this page, we hope to clarify the main ideas behind Pijul.
Why care about patch theory? Good question. The answer is, because having a simple mental model of a tool allows to predict what it does. Pijul uses only patches, which are atomic components of team work. In Pijul, a branch is exactly a set of patches.
Many users of other distributed version control systems expect their favorite tool to work in a way that is somewhat different from how these systems really work.</description></item><item><title>Thrussh</title><link>http://pijul.org/thrussh/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://pijul.org/thrussh/</guid><description>Portable SSH client and server library Thrussh is the first Rust SSH library. The only non-Rust part is the crypto backend (handled by https://briansmith.org/rustdoc/ring/). This means that this library will never be subject to buffer overruns, double frees, etc. It is designed to work on any platform, and to work with asynchronous IO.
This also allows it to be as fast as others, since less time is spent on checking memory allocations (compilers do that better than humans), and more time is spent on performance.</description></item></channel></rss>