|diffs||Diff algorithms (as a separated crate)||on November 29, 2018|
|libpijul||including cli.rs and generate_completions.…||on April 20, 2018|
|line||Line 0.1.2||on April 22, 2018|
|pijul||Line 0.1.2||on April 22, 2018|
|.ignore||chore: Update .ignore file to hide kcov re…||on May 1, 2018|
|CHANGELOG.md||Init||on February 27, 2018|
|CONTRIBUTORS.md||Add grep command (#345)||on December 8, 2018|
|Cargo.lock||Version bump||on June 27, 2019|
|Cargo.toml||Version bump||on June 27, 2019|
|README.md||Shell in the README||on March 27, 2019|
|shell.nix||PGP support (via Sequoia-PGP)||on March 23, 2019|
|vc-pijul.el||Emacs VC mode: now displaying the last pat…||on April 25, 2019|
Pijul is a version control system based on patches. Its fundamental promise is that two patches producible in parallel always commute. This makes the whole system more correct, and much simpler to use, as explained in the manual.
The license is GPL2, or any later version at your convenience. This was changed from the time when Pijul was still a prototype, and had another license.
With the latest stable Rust installed, Pijul can also be compiled and installed using:
cargo install --force pijul
--force flag is used so you can upgrade Pijul if you have a previous version already installed. Once the command has been executed, you can find the
pijul binary in
~/.cargo/bin/. You might want to add an alias in your shell profile.
Pijul looks for its configuration in
$PIJUL_CONFIG_DIR first, then in
$HOME/.pijulconfig if the former is not set.
Our website has instructions on how to reach out.
Pijul, like any software, has bugs. In the past, some users have started believing that our bugs are "design choices", and have blamed us for our poor decisions.
If this happens to you, the best thing to do is to talk to us. The Pijul team strongly believes in positive criticism. If you believe something doesn't behave as expected, if the code looks "complex", if you don't understand the documentation, please reach out.
In most cases, it is a bug. In some others, there are very good reasons for some design choices. It might be the case that we found counter-intuitive examples in the past, that break more "natural" or "naive" approaches.
We welcome contributions, even if you understand nothing of patch theory. See the discussions in this repository to find tasks to do.
The first step towards contributing is to clone the repositories. Pijul depends on a number of packages maintained by the same team, the two largest ones being Sanakirja and Thrussh. Here is how to build and install the pijul repositories:
$ pijul clone https://nest.pijul.com/pijul_org/pijul $ cd pijul $ cargo build
If you want to replace the version installed by Cargo with you own build, it is as simple as:
$ cargo install --force --path pijul
By contributing, you agree to make all your contributions GPL2+.
Moreover, the main platform for contributing is the Nest, which is still somewhat experimental. Therefore, even though we do our best to avoid it, our repository might be reset, causing the patches of all contributors to be merged. Feel free to add your name in CONTRIBUTORS.md.
If you want to propose a change, you should proceed as follows:
pijul push <user>@nest.pijul.com:pijul_org/pijul --to-branch :271
rustfmt to enforce a coding style on pijul source code. You can have a look at the
rustfmt repository for how to install it. To be sure not to forget to run
rustfmt before recording your change, you can use the
pre-hook hook, by creating an executable file at
.pijul/hooks/pre-record, with the following content:
#!/usr/bin/bash cargo fmt -- --check
Please make sure to comply with the rustfmt coding style before submitting your patches!