ZH version is available. Content is displayed in original English for accuracy.
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 (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.