Live data from Hacker News

Ask HN: Git Alternatives – Sapling vs. Jj

news.ycombinator.com

1–10 of 66 posts

Ask HN: Git Alternatives – Sapling vs. Jj

#1
Having worked at Google I have unfortunately been exposed to what is possible when in comes to version control systems. I have been looking for a git alternative that is just generally simpler, more ergonomic, and allows for things like stacked PRs while maintaining git compatibility, since everything is on github.

I am uninterested in `you can do that in git with [insert esoteric commands]`.

My main contenders right now are Sapling[0], a project from Meta, and jj[1]. I am wondering if anyone has experience with either, or definitely those who have tried both, what was your experience? They both have a lot of nice features.

[0] https://sapling-scm.com/ [1] https://github.com/martinvonz/jj/blob/main/docs/sapling-comparison.md

Re: Ask HN: Git Alternatives – Sapling vs. Jj

#3
Documentation, training, and relative ease of acquisition and installation are properties of the git ecosystem that are hard to replicate outside of an organization with a business case like Google.

That's the setup for: Who are the intended users and in what context will they use it?

If it's just you or you and your employees, selling no github can be straightforward. If it's your boss and some other teams, it's gonna be harder. Good luck.

Re: Ask HN: Git Alternatives – Sapling vs. Jj

#4
post #3

Documentation, training, and relative ease of acquisition and installation are properties of the git ecosystem that are hard to replicate outside of an organization with a business case like Google. That's the setup for: Who are the intended users and in what context will they use it? If it's just you or you and your employees, selling no github can be straightforward. If it's your boss and some other teams, it's gon…

Not to dissuade people from looking into alternatives, but the high quality integration that Git has with every single code editor in wide use today is a huge advantage over every other VCS imo. As far as I can tell, the closest to it in that regard is Subversion, but it's not all that close. One of my friends is getting into Plastic SCM, for fair reasons, but Plastic doesn't have a UI as fun as Magit.

Re: Ask HN: Git Alternatives – Sapling vs. Jj

#7
Off topic. I saw this thread the other day and thought it will be an interesting topic. But then it dropped off and disappeared. I doubled checked the topic was 2 days ago but now it reappeared as 2 hours ago. Anyone knows why?

Re: Ask HN: Git Alternatives – Sapling vs. Jj

#8
There's also Pijul. I have only had a brief play with Jujutsu and I haven't tried Sapling but from what I can see, Jujutsu is definitely the best option if you want to actually get stuff done while mostly maintaining Git compatibility.

Pijul is definitely still in the research prototype phase, and definitely not Git compatible. I don't know how Git compatible Sapling is, but large parts of it are still labelled "Not yet supported publicly, OSS is buildable for unsupported experimentation." It also feels like a VCS that was designed for Facebook and then open sourced, so it is targeted at the use case of "massive company monorepo, and we have 10 guys that run the infra". That's great, because Git is bad at that use case, but it might not be what you want.

Re: Ask HN: Git Alternatives – Sapling vs. Jj

#9
post #3

Documentation, training, and relative ease of acquisition and installation are properties of the git ecosystem that are hard to replicate outside of an organization with a business case like Google. That's the setup for: Who are the intended users and in what context will they use it? If it's just you or you and your employees, selling no github can be straightforward. If it's your boss and some other teams, it's gon…

Both Sapling and Jujutsu are compatible with Git repositories, and there are even settings to have the `.git` directory exposed so that all of your existing tools will be able to run Git commands, show hunk changes in the gutter, etc. For all intents and purposes, you can use them in place of or alongside Git, and none of your colleagues will really need to know. This is a significant advantage over competing non-Git systems, and one of the major selling points that incentivize people to even try it at all.

If it means anything, I have been using Git for 15 years and am one of the earliest GitHub users, and I have not regularly used Git for nearly anything, in any job, for over ~1.5 years now. (Disclosure: I am also one of the Jujutsu developers though, so take that for what it is.)

Re: Ask HN: Git Alternatives – Sapling vs. Jj

#10
post #8

There's also Pijul. I have only had a brief play with Jujutsu and I haven't tried Sapling but from what I can see, Jujutsu is definitely the best option if you want to actually get stuff done while mostly maintaining Git compatibility. Pijul is definitely still in the research prototype phase, and definitely not Git compatible. I don't know how Git compatible Sapling is, but large parts of it are still labelled "Not…

The command line interface for Sapling called `sl`, which is Git compatible, is fully supported by the team at Meta. You can file bugs and feature requests, etc, though the repository is a bit intimidating. It is only the non-Git server components (Mononoke, EdenFS) that are not yet really supported [1] but I think most people aren't really concerned with that, when writing a post like this.

For all intents and purposes, Sapling works very well, I think, and in some places it has a lot more polish, like the "isl" graphical interface, which makes things like rebasing and restacking incredibly intuitive even for new users. (I consider isl to be a significant advantage over Jujutsu, and I say that as a Jujutsu developer!)

[1] Though, Mononoke does support features like exporting Git repositories to remote hosts from the internal model; that's not really what people are looking for in a lot of cases though.

Post reply on HN