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