Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #3414

A

A new version

Personal blog · jneem.github.ioprogrammingsystems

A new version is a personal blog at jneem.github.io about programming and systems. Since 2017, 23 different Hacker News readers have linked it 30 times, most often “Merging and Patches (2017)”. The last post was in 2020, but the archive is still widely read.

Visit the blog
30mentions?
23HN people?
2017–2023first – last linked?
Links on Hacker News per year · peak 10 in 2020

Too few sampled comments (19) to say how often HN recommends it.?

Why HN links it

HN readers link jneem's blog series on merging and patch theory as the explanation behind the Pijul version control system, including how its merges work. Commenters cite it as the source for those ideas.

Summarised by Claude from a sample of 19 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Some thoughts about version control

Most-linked posts?

  1. Merging and Patches (2017)
    17 people · 20 mentions · first linked 2017-05-08
  2. Merging, patches, and pijul (a VCS without merge conflict written in Rust)
    5 people · 5 mentions · first linked 2017-05-16
  3. Porting audio code from C to rust
    2 people · 2 mentions · first linked 2020-07-13

What Hacker News says?

  1. From my limited knowledge (mostly based on jneems article series[1]), I think Pijul is more powerful, but for the same reason also considerably more difficult to understand than Git. In particular, Pijul supports (and depends on) working with repository states that are, in Git terms, not fully resolved. In addition, those states are potentially very difficult to even represent as flat files (see e.g. [2]). Git is si…

    Comment linking /cycles/

    on “Write yourself a Git (2018)”
  2. Submitted Merging and Patches (2017) as a story · 41 points

    HN discussion
  3. I am a mathematician and generally bearish on category theory in programming. The best argument for it I've seen so far is that it can inform the design of your system to give it desirable properties, like how the DVCS Pijul [1] bases its data structures on patches and its merge operation on categorical pushouts [2] -- also explained at length in a series of blog posts [3]. I found the whole idea and reasoning behin…

    Comment linking /merging/

    on “Applied Category Theory”
  4. Submitted VCS based on categorical theory of patches (2017) as a story · 23 points

    HN discussion
  5. Yes. Take a look at Pijul. Here is an article explaining the algorithm. https://jneem.github.io/merging/

    Comment linking /merging/

    on “CRDTs: The Hard Parts [video]”
  6. Submitted Porting audio code from C to rust as a story · 3 points

    HN discussion
  7. Am I reading this right that this is the algorithmic fix, but it still needs a concrete implementation - and then the main server should be back down to "vertically scalable"? Without going and reading the doc(yet); does this relate to:? https://jneem.github.io/merging/ It would seem that a simpler, deterministic merge algo would be possible to parallelize - but I'm not sure if it's easy to match matrix idea of merg…

    Comment linking /merging/

    on “Enter the Matrix – A technical overview and guide to all things Matrix”
  8. Submitted Merging, patches, and pijul (a VCS without merge conflict written in Rust) as a story · 3 points

    HN discussion
  9. Seems we now just have to wait for the next generation that's a rip-off of piul[1] rather than git, and we'll be all set! On a more serious note, this seems to be a trend; to model chat as a converging set of edits. From an architectural pov it sounds similar to Google wave and lotus notes. [1] https://jneem.github.io/merging/

    Comment linking /merging/

    on “Enter the Matrix – A technical overview and guide to all things Matrix”
  10. Submitted Merging and patches as a story · 3 points

    HN discussion
  11. You can find an explanation of how it works at [0]. The vague notion of "patch commutation" is central to both operational CRDTs and Pijul's theory of patches, but other than that, I don't really see any similarities. [0]: https://jneem.github.io/merging/

    Comment linking /merging/

    on “Pijul: A intuitive VCS unlike Git that's based on sound theory of patches”
  12. Submitted Nnnoiseless: Porting audio code from C to rust as a story · 2 points

    HN discussion
  13. dilap · 2020-09-26Recommends
    They're in the middle of a big rewrite, which will be out Real Soon Now. To understand the basic idea, this series of blog posts is excellent: https://jneem.github.io/merging/ To me, it seems clear that a patch-based VCS is the future. Whether or not it will be pijul that brings us this future, I don't know...

    Comment linking /merging/

    on “Pijul: A intuitive VCS unlike Git that's based on sound theory of patches”
  14. Submitted Merging and Patches (2017) as a story · 2 points

    HN discussion
  15. The implications of Pijul are really interesting. Some of the guarantees afforded by Pijul's model are clearly superior to those afforded by Git, but I can't help but get the impression that Pijul is: 1. considerably more complex under the sheets, and 2. considerably more complex in situations you're going to have to deal with as a user . It would be nice to read an article from someone familiar with Pijul, that wou…

    Comment linking /pijul/

    on “Pijul: a distributed version control system, written in Rust (2019)”
  16. Submitted Merging and Patches as a story · 1 points

    HN discussion
  17. apichat · 2018-11-22Recommends
    I think that you can find good explanations of these problems here : https://jneem.github.io/merging/ https://pijul.org/model/#why-care-about-patch-theory Unfortunatly Gitless doesn't solve them. But Pijul solve many problems of Git (and Darcs) and is easier to use. https://pijul.org

    Comment linking /merging/

    on “Gitless: A simple version control system built on top of Git”
  18. Submitted Merging, patches, and pijul as a story · 1 points

    HN discussion
  19. Git has a really simple view of changes. That is, none. It just saves blobs. It doesn't really know what you commit. For example it doesn't know if commits are independent of each other. Darcs was also from the 2000s but unfortunately not fast enough to compete with git. If you want to see what a post-git VCS might look like, read this introduction to pijul, a VCS that is based on patches and not on blobs like git:…

    Comment linking /merging/

    on “Open-source paved the way for today’s remote software development processes”
  20. >A recent paper suggested a new mathematical point of view on version control. I first found out about it from pijul, a new version control system (VCS) that is loosely inspired by that paper. https://jneem.github.io/merging/

    Comment linking /merging/

    on “I Want Decentralized Version Control for Structured Data”
  21. japanuspus · 2019-02-05Recommends
    I found this [0] to be a very readable presentation of the theory behind Pijul. Key point is that by representing state as an "DAG of lines" instead of as an "ordered list of lines" (i.e. a file), you are always able to do perfect merges. You then need a "flattening" step to get to a normal file, but that is handled same as any other patch. All in all, I am a tempted to give this a try -- even though the mental mode…

    Comment linking /merging/

    on “Pijul for Git users”
  22. norswap · 2019-02-05Recommends
    For those who wonder what the heck Pijul is about, I'd like to emphasize these two articles linked at the bottom of the page: https://jneem.github.io/merging/ https://jneem.github.io/pijul/

    Comment linking /pijul/

    on “Pijul for Git users”
  23. The main page seems to be missing a good description of how the packages work. If one follows the links a bit there is one here: https://jneem.github.io/merging/

    Comment linking /merging/

    on “Pijul: distributed version control system based on a sound theory of patches”
  24. I think this explains the “theory of patches”: https://jneem.github.io/merging/

    Comment linking /merging/

    on “Pijul: distributed version control system based on a sound theory of patches”
  25. Another way to think about merging and patches : https://jneem.github.io/merging/

    Comment linking /merging/

    on “Git Branches: Intuition and Reality”
  26. From the title, I was rather expecting an argument along the lines of "Git is not revision control of code, but of snapshots of a filesystem"; I opened the link expecting to see an introduction to a patch-based system like Darcs or Pijul. Pijul's theory, in particular, is extremely intuitive (if your intuition extends to "cocompletion of the category of files and patches", anyway) and it truly is born for the task o…

    Comment linking /merging/

    on “Git Is Not Revision Control (2017)”
  27. Then, at least for VCS, there are Darcs and Pijul, which use a theory of patches. So Pijul manages to have lossless merges by actually storing a directed graph (though of course, you will still need to decide how to flatten that into a displayed file) : https://jneem.github.io/pijul/ And because it uses more information about the history, it is able to do smarter merges (if I am not mistaken, even compared to the OP…

    Comment linking /pijul/

    on “Merging with diff3: the “three-way merge””
  28. vhodges · 2023-08-12Recommends
    On the theory of patches I found this set of posts helpful: https://jneem.github.io/merging/ TIL from the first 10 minutes (I didn't have time to watch the whole thing): I've been mis-pronouncing the name of pijul :)

    Comment linking /merging/

    on “Pijul: Version-Control Post-Git • Goto 2023”

Search all of HN for jneem.github.io

Linked by the same people?