4 ms·
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: a
by rs545837 8mo 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 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.
- tomaskafka 7mo ago[flagged]
- rs545837 7mo agoNo it was meant to be here, I don't like reddit as much as I love HN.
- conartist6 7mo agoIf you don't understand what's being talked about, maybe best to stay quiet
- evrimoztamur 7mo agoI would love it if sem was hooked up into a PR review UI...
- rs545837 7mo agoThat's exactly what inspect does (https://github.com/ataraxy-labs/inspect https://github.com/ataraxy-labs/inspect). It uses sem's entity graph to triage PRs: classifies every change, scores risk based on blast radius and dependents, and groups related changes together. We are still benchmarking it on diverse benchmarks, and working on it as a research direction. Also working on a diff viewer in rust.
- Palanikannan 7mo agoYou mean, something like this? https://ataraxy-labs.github.io/quiver/ https://ataraxy-labs.github.io/quiver/ https://x.com/Palanikannan_M/status/2022190215021126004 https://x.com/Palanikannan_M/status/2022190215021126004
- Palanikannan 7mo agoBuilt something cool that might interest you, semantic diffs https://x.com/i/status/2029992315532759435 https://x.com/i/status/2029992315532759435
- yvdriess 7mo agoEverything 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 https://scg.unibe.ch/archive/papers/Nier13bMonticello.pdf
- rs545837 7mo agoYeah I am actually super excited for these new kind of innovations. These things are genuinely not letting me sleep these days.