In a Git repo you can have many branches with various experiments/features. In a Sapling repo usually you have a linear history of the already pushed/public commits on the bottom, and a tree of working commits on the top of the log. But this "chaos" of commits is fully visible, as a tree. You can continuosly move commits in this tree. When something become production-ready, you push the finished commits in the bottom part. In the top you have always working commits.Sapling follow a "stack approach". You have polite commits, and "working" commits. You can fold and split working commits. Every operation is saved also in a private "operation log", so you have both a clean repo history, and low level details of every dirty operation you have done. You can revert anything. You can move working commits like in a stack. When you are happy, you push finished commits to a Git repo, and during review they can improve them. In practice the operation on the history of commits are more natural and composable.
Every refinement you do with the commits is visible in the private repo with
sl journal. So when you manage commits, you don't loose anything, if you do the wrong command.