Musings of a Programmer

Rarely-used blog of Dan Harper.
View all blog posts

Sapling

February 28, 2024

Sapling is the source code tool used at Meta. It started as extensions of top of Mercurial but now has its own identity as Sapling.

As I spend all day using Sapling/Mercurial, I found it difficult re-adjusting to Git when I find time for random side projects. Thanks to Sapling's Git interop, that mental overhead is gone :)

This is just some quick notes to myself when setting up new repos:

sl init --git .

Then to sync to a GitHub repo, GitHub provide these instructions:

git remote add origin https://github.com/...
git push -u origin main

With Sapling, do:

sl path --add default https://github.com/...
sl push default --to main

Now just sl push (occasionally, sl push --to main).

sl commit -i, sl histedit, sl addremove sl, sl hide, sl split all work :)

There's more to it with the web-based Interactive Smartlog tool, ReviewStack, etc. for stacked diffs - but I haven't had a need for them yet as I'm only on solo side-projects.