Sapling Commands

less than 1 minute read

Sapling (the Facebook-released SCM) is great, but the docs are not-great.
I thought I’d list some commands it took me a while to undertand, for me and for others

Create remote tag

sl push --to tags/v0.0.5

Where v0.0.5 is the tag name.
The “remote” is because there are no local tags in Sapling

Delete remote branch

sl push --delete main default

Where “main” is the name of the branch, and “default” is the path (aka origin in git-talk)

Clone from a bundle

Either its own bundles or git ones

sl clone --git $(realpath BUNDLEFILE) DESTNAME

The currrent build resolves the bundle path relatively to the dest directory, and there are some other shenanigans.
Additionally, without specifying --git the bundle is assumed to be a Mercurial-flavored one, which is not what’s produced from sl bundle.

This also applies to cloning a git repo