Friday , November 27 2020

Pijul: a distributed version control system (written in Rust), Hacker News


Pijul is a version control system based onpatches. 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 explainedin the manual.

License

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.

Getting Started

Pijul depends onlibsodiumandopenssl. They are not always easy to install. On Unix platforms, we recommendthe Nix package managerto start hacking on Pijul.

There are packages for a number of platforms, includingNixOS,Brewfor OSX,our own buildsfor Windows,Aurfor Arch Linux, among others.

With the latest stable Rust installed, Pijul can also be compiled and installed using:

cargo install --force pijul

The- forceflag Is used so you can upgrade Pijul if you have a previous version already installed. Once the command has been executed, you can find thepijulbinary in~ / .cargo / bin /. You might want to add an alias in your shell profile.

Pijul looks for its configuration in$ PIJUL_CONFIG_DIRfirst, then in$ HOME / .pijulconfigif the former is not set.

Community

Our websitehas instructions on how to reach out.

Feature or bug?

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.

Contributing

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 toclone the repositories. Pijul depends on a number of packages maintained by the same team, the two largest ones beingSanakirjaandThrussh. 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 isthe 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:

Create anew discussion on the Nest, to gather feedback on your proposal.

  • Make your change, record a patch (by usingpijul record
  • Push it to the Nest. It isnotnecessary (and actually not even useful) to fork the project on the Nest, as changes can be pushed directly to discussions. After creating a discussion, one can push a patch directly to the corresponding branch. For instance, discussion has branch name ": (******************************************" , and patches can be pushed using:
  • pijul push@ nest.pijul.com:pijul_org/pijul --to-branch: 823

    We userustfmtto enforce a coding style on pijul source code. You can have a look at therustfmt

    repository

    for how to install it. To be sure not to forget to runrustfmt

    before recording your change, you can use thepre-hookhook, 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!

     **************************

  • (Read More) ******(**************************************

    About admin

    Check Also

    Why the Gov.uk Design System team changed the input type for numbers, Hacker News

    Why the Gov.uk Design System team changed the input type for numbers, Hacker News

    https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/ To provide users with a good service, government organisations usually need to collect data. Lots of data. The GOV.UK Design System team creates patterns and components that let users enter their data in an easy and accessible way. The last thing we want to do is create barriers to users completing a task and…

    Leave a Reply

    Your email address will not be published. Required fields are marked *