3 ms·
Sapling looks quite cool! I've used git extensively in my career and consider myself as having a slightly-more-advanced-than-typical understanding of how to use
by blitz_skull 3y ago
Sapling looks quite cool! I've used git extensively in my career and consider myself as having a slightly-more-advanced-than-typical understanding of how to use it just based on conversations with colleagues. However, one thing that's always been very limiting with git has been stack-based PR reviews, and as they mentioned amending deep commits. It's not impossible, but it makes it awkward enough that I usually avoid it if possible.
Curious if anyone has used Sapling after lots of time using git. Is it the future?
- ink_13 3y agoProbably not, if only for reasons of inertia. Git plus third-party review tools (like GitHub) is more than "good enough" for most purposes. I used to work at FB, and while sapling is quite nice to use in practice, without the internal version of Phabricator to do code review (and, in all likelihood, mononoke), I don't think I'd pick it up again.
- c_crank 3y agoGitHub's gotten so much worse since Microsoft bought it. The drop in quality compared to when I used it in school is remarkable.
- HumanOstrich 3y agoCan you provide some specific examples?
- c_crank 3y agoThe token system used instead of passwords now was horribly explained. I had to look at several online resources to figure out how to actually use it. I've noticed that the system seems to repeatedly throttle me where it never did before. Logging in often results in being given an error until I try it enough times. Sometimes attempting to pull recent changes from a repo will fail, and tell me that I pulled the recent changes even though I am stuck on an old commit. I tried several things to fix this and the only thing that seems to work is doing a hard reset on the latest commit id. I never noticed github doing this before.
- HumanOstrich 3y agoThanks for the clarification. I agree with you on the token system. It was a pain to figure out. I've actually run into issues with throttling and stale fetches before, but it was due to a company proxy intercepting all requests. So effectively our entire org was hitting GitHub through a small number of proxy gateway IPs. Happened with AWS APIs too -- major throttling issues with terraform that seemed to be triggered based on the shared IPs. Might be a longshot, but I'd check to make sure you aren't going through some proxy or VPN because I don't think your experience is typical.
- alexhornby 3y agoreviewstack adds the missing stack and versioning phab UX on top of github apis, been enjoying using it outside meta for some oss stuff, and fixed a limitation of it recently in https://reviewstack.dev/facebook/sapling/pull/656 https://reviewstack.dev/facebook/sapling/pull/656
- sluongng 3y agoSome of the recent tool started to come out to fix Git unfriendly UX. Meta's Sapling (1) is definitely one of them. But there is also `jj` (2) and `git-branchless` (3). These tools target a smaller set of workflow where there is 1 main branch inside a big repo and everything else are short-lived branch/topic that could be treated as ephemeral stack of patches, constantly being uproot / rebase on top of the main branch to derive final result. If that's the workflow you use daily, then you should give these tools a try. (1): https://github.com/facebook/sapling https://github.com/facebook/sapling (2): https://github.com/martinvonz/jj/ https://github.com/martinvonz/jj/ (3): https://github.com/arxanas/git-branchless https://github.com/arxanas/git-branchless
- zzzzzzzza 3y agopijul for the purists https://pijul.org/ https://pijul.org/
- aseipp 3y agoI'm one of the earliest GitHub users, have run FOSS projects, etc. Sapling is absolutely excellent. If anything, the 'sl web' UI alone, which can do rebases/commits, is worth giving it a shot. 'sl web' makes Git rebase look like the dark ages. The UX just has lots and lots of polish in small ways and it has a nice amount of good features. It has fewer verbs than Git, but it's still a bit different from Mercurial. Having a built in 'undo' command that basically always works is nice. I have replaced Git with Sapling (and a similar-but-not-the-same system, Jujutsu) in most of my own personal workflows at this time. If that's a good enough endorsement for you, then I suggest trying it out. You might be surprised.
- likpok 3y agoWhen we first switched from git to hg internally I was real cranky. Git was the clear industry winner, and hg was adding a whole bunch of churn for no good reason. Now, hg is amazing and when I leave I will be extremely sad to go back to git. The UX is well thought out, with commands mapping to operations (how do you undo a commit? hg uncommit vs git playing around with the reflog). Amending deep commits is pretty good -- it's still tricky and absorb works on some pretty limited heuristics. But the merge tooling is pretty good around moving around in a stack, and the general UX over interacting with the stack is way better: hg histedit edits history, while hg rebase moves the stack around.