Comment by gritzko
10 hours ago
Git vocabulary is workflow-based, i.e. "what we usually do". Unfortunately, the language grew complex and easy to mess up. The problem of NxN interactions: what happens if we do C between A and B?
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).
No comments yet
Contribute on Hacker News ↗