Live data from Hacker News

Ask HN: Git Alternatives – Sapling vs. Jj

news.ycombinator.com

51–60 of 66 posts

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

#51
post #45
post #30

Earlier quoted context omitted.

For what it’s worth, the main developer of git-branchless is also a `jj` contributor

One of the main reasons to use git-branchless over jj or Sapling is if you need support for a workflow that's not supported in jj/Sapling yet, such as Git LFS. I (git-branchless author) would like to see both systems get to feature parity one day to unblock users who would like to migrate but can't. These days, there are relatively few things that git-branchless can do that jj/Sapling can't, one example being its (so…

Do you perchance have something directly comparing jj and your branchless work?

Regardless keep up the good work. Assuming some one hasn't done it while I haven't been paying attention I will some day write some code to support gitlab in the submit command (I have a script I use all the time, just written around it rather than within).

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

#52
post #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…

[deleted]

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

#53
post #50

JJ is incredible. Highly recommend it. I can't put into words what a game changer it is for my workflow. The only thing I reach for for git now is `bisect` when I need to debug an oncall issue.

I have never really made bisect a part of my workflow, but something I believe would work well with just jj is making two workspaces before and after the issue, and iteratively walking their working revisions toward each other. That has the advantage of being able to run both versions simultaneously easily.

What do you mean both versions? They are all different versions.

You have N versions between your endpoints, and you test log(N) of them. You don't test any single version more than one time.

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

#55
post #53
post #50

Earlier quoted context omitted.

I have never really made bisect a part of my workflow, but something I believe would work well with just jj is making two workspaces before and after the issue, and iteratively walking their working revisions toward each other. That has the advantage of being able to run both versions simultaneously easily.

What do you mean both versions? They are all different versions. You have N versions between your endpoints, and you test log(N) of them. You don't test any single version more than one time.

For certain applications and bugs it may be helpful to see a version of the application with the bug running side by side with a version without the bug. By "both versions" I meant the versions checked out in both workspaces. See: https://martinvonz.github.io/jj/latest/working-copy/#workspa...

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

#56
post #51
post #45

Earlier quoted context omitted.

One of the main reasons to use git-branchless over jj or Sapling is if you need support for a workflow that's not supported in jj/Sapling yet, such as Git LFS. I (git-branchless author) would like to see both systems get to feature parity one day to unblock users who would like to migrate but can't. These days, there are relatively few things that git-branchless can do that jj/Sapling can't, one example being its (so…

Do you perchance have something directly comparing jj and your branchless work? Regardless keep up the good work. Assuming some one hasn't done it while I haven't been paying attention I will some day write some code to support gitlab in the submit command (I have a script I use all the time, just written around it rather than within).

I don't have anything written. These days, the only unique things git-branchless has are certain commands (`git test`, `git sync`, `git submit`, which would be good to implement in jj), and a few minor features like `git record --stash`, and of course compatibility with various Git extensions like LFS.

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

#57
post #53
post #50

Earlier quoted context omitted.

I have never really made bisect a part of my workflow, but something I believe would work well with just jj is making two workspaces before and after the issue, and iteratively walking their working revisions toward each other. That has the advantage of being able to run both versions simultaneously easily.

What do you mean both versions? They are all different versions. You have N versions between your endpoints, and you test log(N) of them. You don't test any single version more than one time.

You can run the tests on each commit in parallel if you're okay with wasting CPU time to save wall-clock time. git-branchless can speculatively run linear or binary search in parallel up to a user-specified number of jobs [1], and I'd like it add it to jj someday, as it's one of the features I miss most.

(To run the tests in parallel, git-branchless provisions its own worktrees. For binary search, it speculatively executes the search for the potential success and failure cases; when the number of jobs is a power of 2, this partitions the search space evenly.)

[1]: https://github.com/arxanas/git-branchless/wiki/Command:-git-...

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

#58
post #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 purpo…

> The command line interface for Sapling called `sl` [...]

This is a really unfortunate choice of the binary name - it collides with a classic UNIX utility. I use it everyday and it would be very annoying for the program to do something unexpected.

Edit: apt install sl

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

#59
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…

Genuinely what’s the big deal? I used Git as a frontend to a Subversion remote because that’s what “IT” had. Any decent Git contender (read: worthy early adopting) will have the same capability.

Right now both Git power users and Git anti-users (minimum care) cooperate on the same code. Some making fantastic Git histories (or yak shaving with rebase too hard) and some doing “backup for the dayy”.

Maybe one of them is even using Jujutsu behind the scenes. Who knows? Ahh, maybe that’s why he has forgotten that one switch to git-rebase that you need two times a quarter.

You don’t need any momentum or organization backing or people in your corner in order to start trying out a Git alternative.

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

#60
post #58
post #10

Earlier quoted context omitted.

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 purpo…

> The command line interface for Sapling called `sl` [...] This is a really unfortunate choice of the binary name - it collides with a classic UNIX utility. I use it everyday and it would be very annoying for the program to do something unexpected. Edit: apt install sl

The package name will be sl-vcs like chromium-browser
Post reply on HN