| ▲ | rs545837 16 hours ago | |||||||||||||
This is the right question. Storing ASTs directly would make all of this native instead of layered on top. The pragmatic reason weave works at the git layer: adoption. Getting people to switch merge drivers is hard enough, getting them to switch VCS is nearly impossible. So weave parses the three file versions on the fly during merge, extracts entities, resolves per-entity, and writes back a normal file that git stores as a blob. You get entity-level merging without anyone changing their workflow. But you're pointing at the ceiling of that approach. A VCS that stores ASTs natively could answer "did any concurrent branches touch this function?" as a query, not as a computation. That's a fundamentally different capability. Beagle looks interesting, will dig into the BASON format. We built something adjacent with sem (https://github.com/ataraxy-labs/sem) which extracts the entity dependency graph from git history. It can answer "what new uses did this function accrete" and "what's the blast radius of this change" but it's still a layer on top of git, not native storage. | ||||||||||||||
| ▲ | yvdriess 10 hours ago | parent | next [-] | |||||||||||||
Everything that was old will become new again. Content/structural version control used to be a research field. Pharo still uses one afaik https://scg.unibe.ch/archive/papers/Nier13bMonticello.pdf | ||||||||||||||
| ||||||||||||||
| ▲ | evrimoztamur 10 hours ago | parent | prev | next [-] | |||||||||||||
I would love it if sem was hooked up into a PR review UI... | ||||||||||||||
| ||||||||||||||
| ▲ | tomaskafka 11 hours ago | parent | prev [-] | |||||||||||||
This sounds like an AI generated self promo slop made for reddit, did you accidentally paste it into a wrong website? | ||||||||||||||
| ||||||||||||||