sunshowers
Joined 3 years ago
Joined 3 years ago
No, git-branchless is a wrapper around Git. jj is an independent source control system with git compatibility. jj can, and does, function entirely without git.
> I'm not sure where you're getting two production backends from. I guess you're referring to the Google internal one that nobody can use?
Lots of people within Google use it!
You are correct that integer sequence numbers and redaction are both reasonable things to want -- we just believed (for a variety of reasons) that the core should be Merkle and that these things should be built on top.
We were compelled to model things as a DAG to be able to handle the occasional merge commit (this makes the algorithms a lot harder), and we wanted the Merkleness for its desirable properties such as being easily cacheable and straightforward to do integrity checks on. We wrote a bidirectional conversion layer between the Mercurial and Bonsai data models, with great attention paid to complete reversibility. (That's how I got into property-based testing, by the way! My coworker also used Alloy to formally verify the data model.)
The closest equivalent is probably Monotone, actually, though it only had one tree/manifest format which was baked into the changeset, while Mononoke got rid of that and _only_ relied on the changes, flipped the pointer directions, and generalized that to arbitrary kinds of derived data. (This was at the cost of having to maintain mapping layers in a database.)
[1] https://www.anthropic.com/engineering/redesigning-source-con...
As I suspected at the time of writing the post (but could not verify) and as was later confirmed in private correspondence to me, Anthropic did not come up with this from first principles. Claude was pointed directly at Mononoke and asked to re-engineer it.
hn at <username>.io