Top
Best
New

Posted by tigerlily 3 days ago

jj – the CLI for Jujutsu(steveklabnik.github.io)
542 points | 493 commentspage 7
fallat 3 days ago||
Now that Steve is part of a GitHub competitor to push jj, I see all these posts as just sales pitches.
steveklabnik 3 days ago||
I am quite happy for anyone to use whatever tools they find to be good. I'm also happy for anyone to use jj with whatever server they want to.

It is right to be skeptical of me, but I hope to keep that integrity by continuing to talk about things that I believe are legitimately good, regardless of anything else.

fallat 2 days ago||
Thanks for the reply Steve - I think it's only natural, and charitably unintentional :) But almost everything I've seen upvoted around the Internet from you has been about jj and being directly tied to east river source control... I think that's a reasonable framing. I can only hope me signalling this maybe changes something. While I'm not a fan of jj (I'd much rather Pijul were to eat the world), I think you as a person is really nice and always have been "for the community", but I can't shake this current framing!
steveklabnik 2 days ago||
I mean, most people seem to think I solely post about AI these days, so it’s kinda funny to run into someone that feels otherwise!

I’m not sure why I’d stop posting about a project I’ve been passionate about for years, just because my job is adjacent to it.

fallat 2 days ago||
You can't say it's adjacent to it, when your job directly involves the technology. You'd stop posting because anything you say about jj could be interpreted as a sales pitch for jj, and a lot of people can be turned off by that. That's one reason. Our lack of creativity is not proof of no more.

But I don't think "stop writing" is the only strategy to jump on...

Or maybe I'm just extremely unlucky to have only caught these kinds of posts and gained this framing! Totally possible.

Philpax 3 days ago||
This tutorial predates his involvement with ERSC.
newsoftheday 2 days ago||
OK I read it, I'm not interested, git does exactly what I want.
tombert 2 days ago||
That's sort of where I've been stuck with with jj.

Maybe someone can convince me otherwise, but to me it hasn't felt sufficiently better than git to justify bothering re-learning this stuff, even if it's relatively easy.

plutokras 2 days ago|||
Git wins by not needing to be replaced badly enough. Latley you can just ask an agent to "amend the last commit" so even that is being abstracted away.
jimmypk 3 days ago||
[dead]
blacknig 3 days ago||
[flagged]
whattheheckheck 3 days ago|
The tower continues to build higher and higher, I wonder when it will collapse under its own weight
Openpic 3 days ago||
[flagged]
cynicalsecurity 3 days ago||
[flagged]
tomhow 2 days ago||
Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.

https://news.ycombinator.com/newsguidelines.html

cynicalsecurity 2 days ago||
I'm sorry, it's hard to say anything good about a project that brings nothing new to the table while desperately trying to replace a well-established industry standard. Such attempts look annoying at best and irritating at most. At the very least the person behind the project could have been more humble in pushing it, and instead of presenting it as a "git killer" causing everyone only headache he could have had 1) polished it 2) pointed out precisely what "problems" with git his project solves. None of those were clearly stated; instead, the shared page is simply a shameless plug for wasting everyone's time.

Okay, next time I'm simply going to ignore it, but allowing this kind of posting only works against the HN. I'm not sure if you've noticed, but even the original post title was annoying enough that someone from the moderators had to replace it.

tomhow 1 day ago||
I'm the moderator who changed the title, which is a routine action. That doesn't mean the post itself is inappropriate for HN.

> allowing this kind of posting only works against the HN

HN is for curious conversation between good hackers. We can't and won't ever disallow a post about a software project that someone has built and that others find interesting. That would be way too interventionist and completely against the ethos of HN.

If you have a substantive critique of the project, you're most welcome to share it in the spirit of curious conversation that this site strives to cultivate. Your original comment and your reply to me reek of just the kind of curmudgeonliness and snarkiness we're trying avoid here.

ramon156 3 days ago||
[flagged]
ux266478 3 days ago||
Clicked on this hoping it would be the irc client, very disappointed!

For those in the know, how does jujutsu stack up to something like Darcs?

steveklabnik 3 days ago|
jj is still snapshot based.
aftbit 3 days ago||
Nope, git is good enough, and is the global standard. We don't need more new VCS.
porksoda 3 days ago||
Great opinion. Have you tried it? It takes just 30 minutes to wash all the Stockholm syndrome off of you.
homebrewer 3 days ago|||
Not necessarily. I used jj for a couple of weeks and found it to be a complete waste of time.

For an advanced user, it did not offer anything I cannot quickly solve in git. Which is probably the wrong thing to optimize in the first place, because even though I frequently rewrite history and split commits during normal worklfow, it takes so little time that improving something else would yield greater returns.

We (not royal we) don't usually go out of our way repeating negative experiences with these tools, so you build a very skewed view of their adoption.

newsoftheday 2 days ago|||
Their opinion is great, why do you feel like you need to counter it with [but, but jj is for the clean masses, not the unclean users].
cryptos 3 days ago||
Might be true, but Subversion was also good enough and a de-facto standard.
aftbit 17 hours ago||
IMO Subversion was never as much of a standard as git. I saw a lot of software that still used CVS back then, and even more that didn't do version control beyond versioned source tarballs.

I'd be happy to be proven wrong. You won't get there by designing a solution that is more ergonomic (if jj even is), but rather by designing one that solves problems that git doesn't solve. Also, you probably need to get some big and important software (like Linux, for git) to switch to using it instead of git.

Even then, I'm usually _not_ an early adopter of something as pivotal as a VCS. This isn't something that's easy to rip out or rewrite later. It shapes my workflow at a deep level and holds the history of my changes in its database. Only once it's being used by 25-50% of projects I encounter daily will I consider moving stuff I control to it.

I have deep scars from mercurial lol.

jansan 3 days ago|
We all need to give ourselves a push and finally make the next step in version control. Github, Google, Microsoft, Meta (did I forget anyone relevant? Probably) should just join forces and finally make it happen, which should not be a problem with a new system that is backend compatible to Git. Sure, Github may lose some appeal to their brand name, but hey, this is actually for making the world a better place.
SOLAR_FIELDS 3 days ago||
Every time I see a statement like this I wonder what specific features of git that people feel like are terrible enough that it’s time to completely start over. Besides “the UX is kinda shit and it’s confusing to learn”, which there are many solutions for already that don’t involve reinventing a pretty good wheel.
bluGill 3 days ago|||
Coming from mercurial (which is older than git), git doesn't understand a branch. Instead of a branch you get a tag that moves, which is very different. Too often I'm trying to figure out where something came in, and but there is just a series of commits with no information of which commits are related. Git then developed the squash+rebase workflow which softof gets around this, but it makes commit longer (bad), and loses the real history of what happened.

Git was not the first DVCS, there were better ones even when it was made. But Linus pushed git and people followed like sheep.

(I'm using git, both because everyone else is, and also because github exists - turns out nobody even wants a DVCS, they want a central version control system with the warts of SVN fixed).

jcranmer 3 days ago|||
> Coming from mercurial (which is older than git)

Git is older than mercurial by 12 days. Bazaar has git beat by about the same amount of time. The major DVCSes all came out within a month of each other.

> But Linus pushed git and people followed like sheep.

I don't think this is true. Until around 2010-2011 or so, projects moving to DVCS seemed to pick up not git but mercurial. The main impetus I think was not Linux choosing git but the collapse of alternate code hosting places other than GitHub, which essentially forced git.

sevenseacat 3 days ago||
way way back in the day I did some digging into all three - and picked bazaar for my personal projects. that didn't last long lol
em-bee 3 days ago|||
the lack of a proper branch history is also the main pain point for me. but i disagree that noone wants a DCVS. having a full copy of the history locally, and being able to clone from any repo to anywhere else and even merge repos (without merging branches) is a major win for me.
mhh__ 3 days ago||||
Git is basically fine even though the verbs are backwards - e.g. you shouldn't need to name branches, commits should be far more automatic, but the basic mechanisms are fine.

GitHub is an abomination.

dieortin 3 days ago||
You might already be aware, but jj fixes exactly those complaints you have with git
seanhunter 3 days ago||||
Right.

How we got git was cvs was totally terrible[1], so Linus refused to use it. Larry McEvoy persuaded Linus to use Bitkeeper for the Linux kernel development effort. After trying Bitkeeper for a while, Linus did the thing of writing v0 of git in a weekend in a response to what he saw as the shortcomings of Bitkeeper for his workflow.[2]

But the point is there had already been vcs that saw wide adoption, serious attempts to address shortcomings in those (perforce and bitkeeper in particular) and then git was created to address specific shortcomings in those systems.

It wasn't born out of just a general "I wish there was something easier than rebase" whine or a desire to create the next thing. I haven't seen anything that comes close to being compelling in that respect. jj comes into that bucket for me. It looks "fine". Like if I was forced to use it I wouldn't complain. It doesn't look materially better than git in any way whatsoever though, and articles like this which say "it has no index" make me respond with "Like ok whatever bro". It really makes no practical difference to me whether the VCS has an index.

[1] I speak as someone who maintained a CVS repo with nearly 700 active developers and >20mm lines of code. When someone made a mistake and you had to go in and edit the repo files in binary format it was genuinely terrifying.

[2] In a cave. From a box of scraps. You get the idea.

bombcar 3 days ago||
To be fair the "shortcomings" that spurred it on mainly were the Samba guys (or just one) reverse-engineering Bitkeeper causing the kernel free license getting pulled, which caused Linus to say "I can build my own with blackjack and pre-commit hooks" and then he did, addressing it toward his exact use case.

It gained tons of popularity mainly because of Linus being behind it; similar projects already existed when it was released.

xtracto 3 days ago||
Mercurial was there, was better and more complete.

Too sad it didnt win the VCS wars.

seanhunter 3 days ago|||
When I tried both at that time hg was just really slow so I just adopted git for all my personal projects because it was fast and a lot better than cvs. I imagine others were the same.
bombcar 3 days ago||
I went with bzr mainly because it had an easy way to plugin "revision" into my documents in a way I could understand and monotonously increment.

hg was slow though I don't know how bzr compared as I was using it pretty light-weight.

pseudalopex 1 day ago|||
Mercurial and Git started around the same time. Linus worried BitMover could threaten Mercurial developers because Mercurial and BitKeeper were more similar.
l72 3 days ago|||
If git would change two defaults, that would make me really happy:

  1. git merge ONLY does merges (no fast forward/rebase). git pull ONLY does a fast forward
  2. git log by default is git log --first-parent. Just show commits where the parent is the current branch. This makes the merge workflow really easy to understand an linear, because in the end, you only care about commits on the trunk.
ramblerman 3 days ago||
The new solution is better. It’s so good we must get all the big players to mandate its usage.

If ur making an appeal on a forum like this u could have gone with ur favorite feature, or anything else really.

jansan 3 days ago||
It is not about starting over, like moving from CVS or Subversion to Git. jj is backend compatible to Git, so nothing really had to change on the backend.

It's just that although Git was created by Linus Torvalds it is not perfect and could be more beginner friendly. But efforts to improve this should be concerted, not individual efforts.

And it does not have to be jj. I just think there is room for improvement, and not to alienate old farts it could be called GitNext, GitStep, GitFlow or similar to emphasize that is still is just Git, only with an improved front end.

Maybe Linus Torvalds himself should start the initiative.

childintime 2 days ago||
Linus? Too tired of the open source community to risk having to deal with it more. Hasn't released anything since 2005, he just drifts on the waves. So sad he doesn't see the human energy wasted on his projects, and doesn't move them into the modern era, where compatibility with the past can be dropped in favor of a much tighter feature set, while also coming free of C/C++. In short: don't count on Linus, he's been a coward, he's too comfortable leading from the back.
More comments...