I (kind of) killed Mercurial at Mozilla

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • jj

    A Git-compatible VCS that is both simple and powerful

    I completely rewrote the README recently to be more "user friendly"; does it address some of your question? I'm not trying to be snarky, I'm genuinely interested in if the README is now tantalizing enough to make you interested: https://github.com/martinvonz/jj?tab=readme-ov-file#introduc...

    But in short, it has a better UX than Git by a mile while remaining interoperable at the storage level, so you can use GitHub; it has many of the niceties of Mercurial's UX like revsets, no staging area, and a templating language for log output. Conflict resolution and rebasing is clean, easy, and nearly automatic. It has features neither support, like a real undo command and "operation log"[1].

    Most importantly though, its internal "automatic snapshot model" design is quite elegant and makes the design and internals very clear. Features like changeset evolution, git rerere, and rebase --update-refs are all obsoleted and naturally handled by this design, among other things.

    Martin, the lead developer, also had a talk at Git Merge 2022 that covers many of the fundamentals. The fundamentals are all still the same but we're evolving many things rapidly: https://www.youtube.com/watch?v=bx_LGilOuE4

    [1] Yes I know about the reflog, no it is not equivalent! It only tracks changes made to visible references ("ref" "log") while jj's oplog actually tracks commands invoked, and lets you completely undo them in the blink of an eye.

  • CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  • sapling

    A Scalable, User-Friendly Source Control System.

    As somebody who has actually been using Sapling (because it provides a much saner UI and mental model than git), the git compatibility of Sapling is at best so-so. It feels more like a stopgap solution while they're evolving their own backend (which I'm pretty sure they use internally, because git just doesn't scale to FB monorepo size and doesn't support their rebase-on-push operation). LFS flat-out doesn't work with Sapling. Force pushing after an amend or rebase is still cumbersome, because you need to explicitly specify (again) the branch you are pushing to. And I'm not sure how bad the file descriptor problem still is that you have (had?) with large repos or submodules [1]; there was a new release recently, but I haven't actually stress-tested that.

    [1] At least some of that may be due to file descriptor leaks: https://github.com/facebook/sapling/issues/464

  • cli

    GitHub’s official command line tool

    From the second article, a minor point but possibly helpful to other here, he contrasts doing everything in the terminal with stacked commits vs going to the Github UI. If people aren't aware, Github offers a cli tool[1]. I've been using it for a few months now and am finding it does make me more productive -- it's nice to be able to open up a PR directly from my terminal. I do still use the GH UI for a lot of things, but I'll often at least start in the terminal, and it also makes the transition from terminal to browser easy as many commands support the `--web` flag open up the right page for you (eg `gh repo view --web`).

    [1] https://cli.github.com/

  • spr

    Stacked Pull Requests on GitHub

    The CLI doesn't help with stacked commits, though. There's tools like spr[1] but none of them are anywhere as pleasant to use as Gerrit (or Phabricator, I guess).

    [1]: https://github.com/ejoffe/spr

  • gitui

    Blazing 💥 fast terminal-ui for git written in rust 🦀

  • magit

    It's Magit! A Git Porcelain inside Emacs.

  • lazygit

    simple terminal UI for git commands

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Delta: A syntax-highlighting pager for Git, diff, grep, and blame output

    9 projects | news.ycombinator.com | 8 Nov 2024
  • Gex: Git CLI Inspired by Emac's Magit

    1 project | news.ycombinator.com | 11 Dec 2023
  • Lazygit: Simple terminal UI for Git commands

    10 projects | news.ycombinator.com | 18 Jul 2023
  • Easy way to git blame from helix?

    2 projects | /r/HelixEditor | 23 Jun 2023
  • Is there any solution like Github Desktop and Gitkraken For terminal Users

    3 projects | /r/github | 13 Jun 2023

Did you konow that Rust is
the 5th most popular programming language
based on number of metions?