Advertisement
Advertisement
β‘ Community Insights
Discussion Sentiment
50% Positive
Analyzed from 344 words in the discussion.
Trending Topics
#git#model#more#doesn#branch#tree#primitives#rest#human#friendly
Discussion Sentiment
Analyzed from 344 words in the discussion.
Trending Topics
Discussion (7 Comments)Read Original on HackerNews
So the idea here is to define actual operations that happen to the tree, formally. Those are a bit more complicated than the vanilla blob/tree/commit model, but still manageable. Six verbs is enough.
Overall, it all decomposes cleanly and uniformly. Workflow-based vocabulary becomes unnecessary (and a bit confusing) once you grasp that basic underlying model of orthogonal operations/concerns. Some parts still need work though, e.g. conveying the precise state of the tree (can't steal from git here).
Even then I don't think the abstraction to HTTP verbs is necessarily a useful one as web requests and version control are two different mental models.
[1] https://replicated.wiki/wiki/Home.html
So, the actual question is how to make this machinery un-screw-up-able. (Author)
Jujutsu VCS! https://www.jj-vcs.dev
It doesn't use Git primitives directly, but it has Git interoperability using semantically more powerful primitives. (e.g., there is not only one index -- you can perform rebases, amends, squashes etc. remotely (without checking out first) -- conflicts are non-blocking and support n-way merges -- and so much more)
I've embraced it to the point of porting complex agentic frameworks to support jj (https://github.com/LoganDark/get-shit-done) and I do not regret it at all. Jujutsu is my absolute favorite VCS now.