Live data from Hacker News

Pijul is a free and open source (GPL2) distributed version control system

pijul.org

201–210 of 212 posts

Re: Pijul is a free and open source (GPL2) distributed version control system

#201
post #19

Earlier quoted context omitted.

This is a chicken and egg problem and I don't see a way out of it. Even if Pijul is better (not voicing an opinion here), it's not drastically better enough to replace Git in widespread use in the near term. The difference in day to day use is not huge. And it is better in handling certain merge situations that are painful in git, but most programmers don't run into these often enough to care. > What makes this uniqu…

> Here's the chicken and egg problem again. Back when git had their chicken-and-egg problem, there were hundreds if not thousands of FOSS project members independently starting threads on mailing lists about how and/or when to move to git. Many of them were already using the git web server thingy and manually syncing with svn or whatever. Some contrarians aside, the general consensus at that time was, "Yes, that clea…

When git came out it was (arguably) miles better than SVN and others. It was a big leap from centralized to decentralized version control.

Git to Pijul is a much smaller change, it is much more difficult to justify.

And then there is the fact that popular CI solutions are tied to GitHub and GitLab which increases the friction significantly.

Re: Pijul is a free and open source (GPL2) distributed version control system

#202
post #201

Earlier quoted context omitted.

> Here's the chicken and egg problem again. Back when git had their chicken-and-egg problem, there were hundreds if not thousands of FOSS project members independently starting threads on mailing lists about how and/or when to move to git. Many of them were already using the git web server thingy and manually syncing with svn or whatever. Some contrarians aside, the general consensus at that time was, "Yes, that clea…

When git came out it was (arguably) miles better than SVN and others. It was a big leap from centralized to decentralized version control. Git to Pijul is a much smaller change, it is much more difficult to justify. And then there is the fact that popular CI solutions are tied to GitHub and GitLab which increases the friction significantly.

> Git to Pijul is a much smaller change, it is much more difficult to justify.

Having used both extensively, I don't think this is true at all. I don't see as much difference between SVN and Git, as I see between these two and Darcs/Pijul (even though Darcs has scaling issues).

Re: Pijul is a free and open source (GPL2) distributed version control system

#203
post #14

I seem to recall very positive comments regarding pijul's underlying architecture/theory. However, as I don't have the headspace to delve into it, I would love a blurb at the beginner level that highlights the benefits of using pijul compared to other VCS, and a very brief and simple comparison between pijul and git (focusing on the differences).

In day to day use, there's very little difference in the practical use of git vs. pijul. You edit files, commit then push. Of course the user interface is different and some of the terminology is different but it's still a distributed version control system. As for the differences, the advantages are listed right there on the front page: commutation, merge correctness, first-class conflicts and partial clones. Explai…

You're describing working on your own single-author project, in which case there is indeed little difference (Pijul has less tooling).

In practice on actual real world cases, there are lots of differences when you start working with others: even on a small project, you don't have to plan your feature branches anymore, conflicts are solved once and for all, you get free cherry-picking of bugfixes to your production branch, etc.

When your project scales, there are even more differences: commutativity handles large repos for free, patches describe large files much more efficiently than by giving their whole contents (which snapshots do).

Re: Pijul is a free and open source (GPL2) distributed version control system

#204

Funny timing of this post. This past weekend, I dedicated myself to creating a comprehensive set of tools for integrating Pijul seamlessly into Emacs. This includes collaboration features through org-mode, which I believe will be refreshing. I'm eager to share it with the community shortly. For fellow Emacs & Pijul enthusiasts, keep an eye out!

As probably the person in the entire world who has been wanting this for the longest, thank you! Please share on Pijul's Zulip, and ask for any help you may need.

I'll try to allocate some time this weekend and also sign up for Zulip. Currently, I'm considering the best way to distribute it. Given that users are familiar with use-package and MELPA, it seems I may need to incorporate Git as well.

Re: Pijul is a free and open source (GPL2) distributed version control system

#205

Funny timing of this post. This past weekend, I dedicated myself to creating a comprehensive set of tools for integrating Pijul seamlessly into Emacs. This includes collaboration features through org-mode, which I believe will be refreshing. I'm eager to share it with the community shortly. For fellow Emacs & Pijul enthusiasts, keep an eye out!

Could you give me a few paragraphs of usage report? How has it been to use the Pijul nest?

I'm just starting to explore Pijul, to be honest. My interest was sparked when I revisited an old Haskell project and remembered using Darcs years ago, which led me to research Pijul. I'll be able to share more insights in a few weekends, once the remote communication components of vc-pijul are established.

Re: Pijul is a free and open source (GPL2) distributed version control system

#206
post #50
post #37

I used darcs before git and it was very nice - the first distributed RCS I'd ever used. I believe pijul is a follow-on to that so it should be great. Later on I used Mercurial and it was very easy with a great GUI and it felt safe. git is like shaving with a straight shaving razor - alarming until you've developed your set of frequently used commands and ways to stay out of trouble. Even I have to use git because who…

> Even I have to use git because who uses anything else? Git compatibility is a great way around this problem. I have been enjoying Jujutsu lately.

Supporting conversion with some lossy tendencies is a good idea, but maintaining compatibility will stifle innovation as al bugs & design decisions cannot be fundamentally worked around.

Adjacent, I heard folks praising Forgejo for its Actions & Microsoft GitHub compatibility, but that means you are still left with the same YAML spaghetti and its other limitations. What would have been nice is something better for CI--something that prompts the project to want to switch to get a better experience. As such, while I agree with the moral reasons to switch to non-proprietary software, the reason for switching is philosophical, not philosophical + technical. I feel being a wrapper around Git or Git compatibility will likely fall in this category rather than being more compelling.

Re: Pijul is a free and open source (GPL2) distributed version control system

#207
post #61

Earlier quoted context omitted.

git != github

To be fair, many git maintainers are or have been github employees and git is officially hosted on github.

That social media code forge is not the same as its underlying version control system. They are different things & we should support making folk not equate the two.

Re: Pijul is a free and open source (GPL2) distributed version control system

#208

Earlier quoted context omitted.

Could you give me a few paragraphs of usage report? How has it been to use the Pijul nest?

I'm just starting to explore Pijul, to be honest. My interest was sparked when I revisited an old Haskell project and remembered using Darcs years ago, which led me to research Pijul. I'll be able to share more insights in a few weekends, once the remote communication components of vc-pijul are established.

Darcs has rebase & Pijul doesn’t which can really help ergonomics for fixups or if you do a lot of WIPs that need amending. Darcs also has a send command for easily mailing patches to others. Darcs also lets you override the diff output which is compatible with decades-old tooling rather than something bespoke. Pijul despite better performance, an awesome user identity system, & channels is still not a Darcs replacement IMO. That isn’t to say folks shouldn’t use or follow the Pijul project (they should) more than it is to say one should still feel okay using Darcs today too as it’s still getting updates & has features Pijul doesn’t; what’s wrong is folks calling Pijul a ‘successor’ as if the Darcs project had died. You could still use Darcs in 2024.

Re: Pijul is a free and open source (GPL2) distributed version control system

#209
post #20
post #16

Earlier quoted context omitted.

I have the same question every time Pijul comes up on HN, and I have yet to get an answer: Can someone give me a real world example (person a makes X change, person b makes y change etc. etc.) that would work better in Pijul than Git? I am a complete believer on a sound underlying model producing better results for users at a high level, but I'm not clear on how it maps through for Pijul. I think that's what they're…

> Can someone give me a real world example (person a makes X change, person b makes y change etc. etc.) that would work better in Pijul than Git? Simplified example: Persons A and B check out master branch. Person A adds a.txt, commits and pushes. Person B adds b.txt, commits and tries to push and... 1) git will not accept the push because it's not on top of current master branch, person B needs to fetch and merge/re…

> 1) git will not accept the push because it's not on top of current master branch, person B needs to fetch and merge/rebase before pushing again.

But is this not the right thing to do? A kernel is a complex piece of software. Changes in one place can have very non-obvious consequences in other places (think of changes that cause deadlock because locks are applied in the wrong order). Of course, it is theoretically nice if I know that a change to e.g. documentation or fixing a typo in a comment is not affecting the Ethernet driver or the virtual file system layer, but this is down to the architecture of the project - this is not something that a version control system can prove.

Given that, it seems desirable to me that the source tree has as few different variations, permutations how to get there, and so on, as possible, since this makes testing and things like bisecting for something like a broken lock or another invariant much easier.

Re: Pijul is a free and open source (GPL2) distributed version control system

#210
post #111

Earlier quoted context omitted.

The git behavior seems greatly preferable here. As mentioned in other threads, the notion of commutativity here is very weak and counterintuitive; it only seems to cover the applicability of an auto-merge heuristic, not any actual notion of correctness or semantics, so a human is needed to review the merge and re-test before anything can be known safe for pushing upstream. If anything, git is too lenient in allowing…

When the contents has a conflict, git and pijul behave similarly. When the contents are identical, but the order of commits is different, git will conflict and require manual resolution. Pijul will not. As you say, neither will automatically check for correctness and you should run tests and CI when merging. Pijul just removes the manual work when there is no conflict in the contents but the history is different.

> When the contents are identical, but the order of commits is different, git will conflict and require manual resolution.

But why would this normally happen? Different developers working on the same files which by chance make the same changes? Isn't that unlikely?

Post reply on HN