Meta’s Sapling source-code management system

Post Syndicated from original https://lwn.net/Articles/915104/

Meta has announced
the open-source release of part of its internal source-code management
system, called Sapling.

Sapling began 10 years ago as an initiative to make our monorepo
scale in the face of tremendous growth. Public source control
systems were not, and still are not, capable of handling
repositories of this size. Breaking up the repository was also out
of the question, as it would mean losing monorepo’s benefits, such
as simplified dependency management and the ability to make broad
changes quickly. Instead, we decided to go all in and make our
source control system scale.

Starting as an extension to the Mercurial open source project, it
rapidly grew into a system of its own with new storage formats,
wire protocols, algorithms, and behaviors. Our ambitions grew along
with it, and we began thinking about how we could improve not only
the scale but also the actual experience of using source control.

At this point, only the client side of the system has been released; the
company “hopes to” release the rest later.