3 ms·
Hi! I'm one of the authors. > 1. considerably more complex under the sheets, and Yes it is, which sometimes comforts me when I think of how long it's taken to
by pmeunier 7y ago
Hi! I'm one of the authors.
> 1. considerably more complex under the sheets, and
Yes it is, which sometimes comforts me when I think of how long it's taken to get a version that works reasonable well.
That said, it's also not the kind of complexity that goes against performance, but rather the kind that makes it hard to process Pijul repositories or patches with independent tools.
> 2. considerably more complex in situations you're going to have to deal with as a user.
I've used it quite a bit, but the biggest repository I've every interacted with is Pijul itself, which is a rather small codebase, so I don't know how the UX scales.
I find it as easy to use as Darcs, with the caveat that patches are not always as intelligible as in Darcs. That said, patches solving conflicts are weird and/or wrong in Darcs, and they are quite simple in Pijul. And I believe conflicts are the situations where you need the most simplicity and clarity.
> It would be nice to read an article from someone familiar with Pijul, [..]
That is a really nice suggestion for a blog post, it's now on my todo list. Thanks!
> For example, accurately representing repository states with files appears difficult
This is unfortunately a difficulty intrinsic to the problem. Git has the same issue, it just doesn't really show it because the conflicts that cause this are shown in a very basic way (there's only so much that diff3 can guess).
> I managed to find a few patches I couldn't understand by looking at them.
There are two issues: one is that the Nest doesn't yet have the best algorithms to render patches (but is likely to improve a lot with the new version of libpijul I'm writing), and the other one is that some patches might have been converted from a previous patch format, which makes them weird.
> I really want to like Pijul, but I'm worried that it's too powerful and requires too much from the user.
The goal is quite the opposite! For starters you can use it just like Git (with branches, and only with better merges). But then when you realise you don't need branches, everything becomes much simpler, and the tool stops getting in your way. For large Git repositories (such as NixOS/nixpkgs on GitHub), I wish it was using Pijul about 100% of the time I contribute or even use my local clone.
- Nullabillity 7y ago> For large Git repositories (such as NixOS/nixpkgs on GitHub), I wish it was using Pijul about 100% of the time I contribute or even use my local clone. That's a reasonable reaction for someone who is very familiar with Pijul, but as a newcomer my reaction is precisely the opposite. When trying to figure out some issue I have with some software, I quickly run into two questions: 1. How did the source code look for the release X that I have installed? 2. Did patch Y make it into release X? Git makes it trivial to answer both of those questions. Both GitHub and GitLab show all versions as tags (by convention) that are reachable in 1-2 clicks from the project home page, and a given commit page shows all tags that include it. With Pijul/Nest I have no idea where to even start. I see no tag list anywhere[0], and patch pages look like gibberish[1]. [0]: https://nest.pijul.com/pmeunier/carnix:master/patches https://nest.pijul.com/pmeunier/carnix:master/patches [1]: https://nest.pijul.com/pmeunier/carnix:master/patches/6gv8hsejXs2L1iKJysZ2Anz4MLReLkm4C4mxbkxHNPmitSWSn8uEkzuDEL7yosY3yCiKMSx3D8ofokM9rTL1ZKam https://nest.pijul.com/pmeunier/carnix:master/patches/6gv8hs...
- pmeunier 7y agoYou're basically saying the Nest is still primitive. Yes it is! It's even blinking on its front page https://nest.pijul.com https://nest.pijul.com
- Nullabillity 7y agoAnd that's fine! I just wish I didn't have to use it (before it is actually considered ready, at least).
- pmeunier 7y agoYou don't have to use the Nest at all, Pijul can work on your own server via SSH, the protocol just runs commands through SSH.
- Nullabillity 7y agoSorry, guess I worded my old post poorly. I have next-to-no interest in Pijul itself. Git is working fine for me, and the snapshot model is much clearer and easier for me than patches anyway. My problems only become relevant when trying to contribute to projects that already use Pijul/Nest (Carnix).
- pmeunier 7y ago> My problems only become relevant when trying to contribute to projects that already use Pijul/Nest (Carnix). Well, but then you can't blame others for using their preferred tools rather than your preferred tools. Also, Git doesn't work for Carnix, because its main author (me) is completely overwhelmed with too many projects and wouldn't want to add the additional project of managing Git branches.