sunshowers

Joined 3 years ago

Karma
3,026
Submissions
1,104
Member since
Oct 10
Rust person, eng @ Oxide, nextest maintainer, they/she. former vcs dev (you should use jj!)

hn at <username>.io

View on Hacker News

Recent submissions

Comment · 5 days ago
> jj is in practice a wrapper around Git

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!

Comment · 6 days ago
It is more powerful and easier to use, for both humans and agents.
Comment · 6 days ago
No, jj is not a wrapper around git. It is a source control system of its own that has git as one of at least two production backends. This distinction matters because git wrappers don't tend to have fundamental concepts of their own like the operation and evolution logs.
Comment · 14 days ago
(I left Meta in September 2022, so I haven't worked there in four years. My current coworkers can attest to the fact that I'm not proud of working at Meta, but I am proud of the world-class nature of what our teams built. In any case, I don't believe my personal feelings about Meta have any bearing on the matter.)
Comment · 14 days ago
This is very similar to the way SCMQuery existed before Mononoke and eventually became served by it. The source control team at Meta was, and is, quite familiar with hybrid deployments of the kind you describe, though of course at longer timescales.
Comment · 14 days ago
I'm not aware of anything published, but the code is open source, and if you're so inclined you can probably point a clanker at it. The second one is called "redaction" in Mononoke, I believe (obliteration is a different term for it, as is censorship).

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.

Comment · 15 days ago
These were both solved as part of the data model via globalrevs and obliteration respectively. But that is besides the point here? The next time you're designing a source control system you're welcome to pick your favorite points in the design space.
Comment · 15 days ago
Thanks for the comment. To the best of my knowledge, Piper is not Merkle DAG based, and instead uses a (completely linear?) sequence number similar to Subversion. I believe they ended up faking those hashes for Fig. I'm not actually sure what they do for Jujutsu compatibility, maybe they've added a Merkle layer since.

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.)

Comment · 16 days ago
Thanks for the response, Durham. I hope you're doing well. I've always appreciated your magnanimity, but I want to note that this belief is not unanimous among the current source control team at Meta.
Comment · 16 days ago
Comment · 16 days ago
Thanks. Indeed, the Scion design is quite good because Claude was pointed directly to Mononoke and asked to analyze the code base and copy it. I am very proud of what our team built by making contrarian bets at exactly the right spots.
Comment · 16 days ago
Except the resemblances extend to the entire server, not just the idea of derived data. The idea of derived data becomes apparent only once you have bought into the core Mononoke insight about Bonsai changesets, later copied wholesale and presented as the core Scion insight about Scion changesets.

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.

Comment · 17 days ago
Yes, I am aware that that credit is not required by law, nor in this case do I wish for credit to be required by law. I am appealing to norms, to basic decency.
Comment · 17 days ago
No? Did you read my post? The problem is the lack of attribution.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton