News for hackers. Stuff that matters.
Re:Pijul is a free and open source (GPL2) distributed versio... by jacoblambda on Wednesday February 21, 2024 @08:19AM (#39453410)
Which tbh is a bad thing. Just because change a doesn't textually touch change b doesn't mean they don't interact.

Unless your VCS is handling CI for integrating changes on push, you really need to pull down the upstream changes first and test them combined with your code before blindly pushing.

Re:Pijul is a free and open source (GPL2) distributed versio... by exDM69 on Wednesday February 21, 2024 @09:03AM (#39453916)
I have clarified the comment above. A pull is needed before pushing. That pull does not need a merge or a rebase like git does because the order of commits A nd B does not matter (iff they are commutative). This gets a lot more useful when there are more than two patches to consider.
Re:Pijul is a free and open source (GPL2) distributed versio... by ykonstant on Wednesday February 21, 2024 @08:31AM (#39453522)
That seems like a very important point; how does pijul deal with such "effects at a distance"?
Re:Pijul is a free and open source (GPL2) distributed versio... by pmeunier on Wednesday February 21, 2024 @05:31PM (#39460536)
By not being a CI tool, nor claiming to solve such Turing-complete problems.

Pijul has a theory of textual changes, but indeed doesn't care at all about what you write in your files: that's your problem!

Re:Pijul is a free and open source (GPL2) distributed versio... by jnxx on Tuesday March 05, 2024 @06:16AM (#39601953)
> Which tbh is a bad thing. Just because change a doesn't textually touch change b doesn't mean they don't interact.

A good example for this is code which grabs several locks and different functions have to do that in the same order, or a deadlock will result. A lot of interaction, even if changes might happen in completely different lines.

And I think that's generally true for complex software. Of course it is great if the compiler can prove that there are no data race conditions, but there will always be abstract invariants which have to be met by the changed code. In very complex code, it is essential to be able to do bisecting, and I think that works only if you have a defined linear order of changes in your artefact. Looking at the graphs of changes can only help to understand why some breakage happened, it cannot prevent it.