14 ms·
Jujutsu at Google [video]
- Lanedo 11mo agoThe full JJ Con playlist is: https://www.youtube.com/playlist?list=PLOU2XLYxmsILM5cRwAK6yKdtKnCK6Y4Oh https://www.youtube.com/playlist?list=PLOU2XLYxmsILM5cRwAK6y...
- rs186 11mo agoI find it interesting that the video itself is unlisted. So do they want people to watch this or not?
- Centigonal 11mo agoIt's Google. They are professional foot-shooters when it comes to making their offerings accessible to their audience.
- Svoka 11mo agoThanks for this!
- ilyagr 11mo agoSee also https://github.com/jj-vcs/jj/wiki/JJ-Con-2025 https://github.com/jj-vcs/jj/wiki/JJ-Con-2025 for a list of all the talks, their slides, and some additional notes. I think the slides are also linked from youtube, but the website definitely has them.
- nchmy 11mo agoShame that Google can't afford anything more than a potato microphone...
- barlog 11mo agoFYI: Linux only GA planned for early 2026
- kyrra 11mo agoThis talk is focused on JJ within Google. This is a Google-internal only GA. JJ is available externally just fine. Google is mainly a linux-dev shop, with all other platforms being second-class citizens.
- Ferret7446 11mo agoNot that there are any other options. You're not gonna run datacenters on Mac boxes or Window s, nor would you want to pay a Unix vendor
- phyrex 11mo agoThe datacenter OS doesn't have to be the same as the developer OS. At my work (of similar scale) the datacenters all run Linux but very nearly all developers are on MacOS
- shadowgovt 11mo agoMacOSX is a popular choice for dev boxes (if I understand correctly, they provide some pretty good tooling for managing a fleet of machines; more expensive hardware than a Linux dev machine fleet, but less DIY for company-wide administration). ... but Google solves the "A Linux fleet requires investment to maintain" problem by investing. They maintain their own in-house distro.
- skirmish 11mo ago> their own in-house distro Not really, it is just a well known outside distro plus internal CI servers to make sure that newly updated packages don't break things. Also some internal tools, of course.
- shadowgovt 11mo agoRelative to what the rest of the world does, that is maintaining your own in-house distro. It's downstream of Ubuntu (unless that's changed) but it's tweaked in the ways you've noted (trying to remember if they also maintain their own package mirrors or if they trust apt to fetch from public repositories; that's a detail I no longer recall).
- deleted 11mo ago[deleted]
- spyspy 11mo agoOff topic, and I don't want to knock the presenter here, but if you're ever going to give a public talk or presentation at work _please_ review the Death By Powerpoint slide deck[0] first. [0] https://www.slideshare.net/slideshow/death-by-powerpoint/85551 https://www.slideshare.net/slideshow/death-by-powerpoint/855...
- Cyph0n 11mo agoGood advice for presenting a TEDx talk. Bad advice for a technical talk.
- OkayPhysicist 11mo agoIf you don't care about the material, why on earth would anybody sit around for 15 minutes/30 minutes/an hour listening to you talk about the material. The sole reason for a presentation over a technical reference buried somewhere is because the presenter wants the audience to care about the thing they're presenting. If that isn't reflected in the presentation, it's not a worthwhile presentation.
- Cyph0n 11mo agoBut this was a technical presentation at a conference dedicated to the technology in question. A person stumbling across this on HN does not magically make them part of the target audience.
- OkayPhysicist 11mo agoA technical presentation is a still a presentation, as opposed to a reference document. If you want to give someone a block of technical information, you do so in a reference document. You talk in front of a room full of people in order to convince them that this matters enough to bother.
- Cyph0n 11mo agoSure, but I don’t think this is relevant to the comment thread we’re in, which started off by sharing generic advice that mostly applies to TED-style motivational talks or “keynotes” at large conferences etc.
- crtasm 11mo ago>Jujutsu, aka JJ, is an open-source, Git-compatible VCS
- oofbey 11mo agoThanks for that context. Why would I want to use it instead of git?
- stonogo 11mo agoBecause you work for Google, or because you don't want to wait for official git to be rewritten in Rust.
- jeffbee 11mo agoAs I recall, git5 was such a piece of junk that they deleted it so nobody could use it any more. It had its fans but they were all deluded. It was a demonstrated fact that git5 users were less productive than normal g4 users.
- gpm 11mo agoWhat is/was "git5"? Git the vcs is only about to release version 3.0... Googling only reveals some gene that happens to be named that...
- skirmish 11mo agoThe big problem with it was that you had to specify upfront which directories you will be editing, and only those were cloned locally. Later if you wanted to add a quick debug printout somewhere else, you would spend 20 minutes tracking more directories and merging / rebasing branches. All because git choked on the huge monorepo.
- impure 11mo agoOh so Google is finally releasing their VCS system I hear so much about. Well it’s Jj not Piper but it looks like Jj will eventually replace Piper and if half the things I’ve heard about Piper are true it will be very successful.
- wffurr 11mo agoIt’s the front end, not the back end that hosts the repository.
- BeetleB 11mo agojj is independent of Google.
- 0cf8612b2e1e 11mo agoIt does require a google CLA.
- metabagel 11mo agoWhat does "CLA" stand for? edit: apparently Contributor License Agreement
- verdverm 11mo agoCLAs are generally a statement that you ensure code you contribute is acceptable by the licensing and legal things around them. They don't want to accidentally bring in GPL-3 or private code into an Apache licensed project, and my understanding is this is a self-certifying statement that you won't and have full rights to make the contributions
- stonogo 11mo agoit is literally impossible to contribute to jj without a Google account and a signed agreement with Google.
- inamberclad 11mo agoNot really on topic, but I think it's funny that most MMA style gyms always offer Jiu Jitsu and Muay Thai as two classes, right after each other. Of the two, Jiu Jitsu seems to generally be the more popular one.
- dakiol 11mo agoI've worked in huge repos with hundreds of developers pushing code every day, dozens of MRs open per day, and all I always needed was a very limited set of what git is capable of (git commit, git co, git st, git merge/rebase, git log). To find bugs, I use "bisect but visually" (I usually use jetbrains IDEs, so I just go to the git history, and do binary search in the commits, displaying all the files that were affected, and jumping easily to such versions). Git conflicts are easily solvable as well with a gui (jetbrain IDEs) via the cli or via something like Sourcetree. Easily, the most used "feature" of git that i use is: - for a given line of code, see all the files that were touched when that line was introduced But I usually do that via the IDE (because to go through dozens of files via cli is a bit of a hassle for me) So, what am I missing? I know jujutsu is much simple (and powerful) than git, but I only have used the "good parts" of git and it has never been a bottleneck... but ofc, you don't know what you don't know.
- phyrex 11mo agoNot to be a jerk, but 'hundreds of devs and dozens of MR per day' is not 'huge repos'. Certain functionality only becomes relevant at scale, and what is easy on a repo worth hundreds of megabytes doesn't work anymore once you have terabytes of source code to deal with.
- ffsm8 11mo ago> terabytes of source code You sure that exists? Git repositories that contain terabytes of source code? I could imagine a repo that is terabytes but has binaries committed or similar... But source code?
- CBLT 11mo agoGoogle's monorepo is in fact terabytes with no binaries. It does stretch the definition of source code though - a lot of that is configuration files (at worst, text protos) which are automatically generated.
- jeffbee 11mo agogit could never, but piper at google is way over that figure. Way, way over.
- deleted 11mo ago[deleted]
- widikidiw 11mo ago[flagged]
- shmichael 11mo agoI'm trying to understand, would jj's first class conflicts solve the issue of having "stacks" of PRs that can easily be updated at any point in the stack? This is one of the features most absent from git, but prevalent in Google's tooling as well as Meta's. The only good known solution I know is graphite.dev
- gpm 11mo agoNot 100% sure I understand what you're saying, but I think the answer is "yes". You can modify any* commit in `jj` regardless of whether it has commits on top of it at any time. Either by another commit into it, or by directly checking out the commit and editing the source tree. If this creates conflicts with commits on top of it `jj` just records those commits as having conflicts/adds conflict markers without interrupting the workflow. * Commits pushed to remotes are marked immutable so you have to pass an extra flag to say ignore that and modify them anyways. Which you generally wouldn't want to do.
- verdverm 11mo agoSo if I push a commit update, and then someone else pushes a commit to one I build on, and there is a conflict... How does recording the conflict, but not introducing it (if I'm understanding correctly), ... how does this affect my build/ci workflow?
- gpm 11mo agoIf I understand you correctly we're imagining you pulled a repo with main at commit A. You added commit B on top of A. Someone else added commit C on top of A to main on the remote, and you're asking what happens? Nothing until you pull and rebase B on top of C (two distinct steps). Once B is on top of C, when B is checked out there will be conflict markers in the source tree that will presumably break your build until you resolve the conflict (unless the conflict is in README or something). My CI workflow has always been on top of a git based forge. As far as the forge is concerned jj is git and absolutely nothing changes with regards to that.
- thibran 11mo agojj is so good, finally a tool to replace Git. SVN -> Git -> jj
- WolfeReader 11mo agoThat's an excellent description. I still remember feeling like a badass using Git-SVN on my SVN-based team, and being the only guy who could actually correct bad merges and restore lost data without having to plead to our SVN admin. And now I'm feeling like a badass using jj on my Git-based team :)
- verdverm 11mo agoNo LFS, submodules, hooks, or new tags means jj has some ways to go before it is a viable replacement for many organizations https://jj-vcs.github.io/jj/latest/git-compatibility/ https://jj-vcs.github.io/jj/latest/git-compatibility/
- aidenn0 11mo agoHaving used git submodules, I see a lack of them as a feature. I honestly think that a script that checks out a specific commit from an external repository, combined with adding the path to the .gitignore is strictly better than submodules.
- verdverm 11mo agosure, but there are projects that use them already. If jj wants to replace git, it needs to work with people's existing projects without significant changes (ideally none at all) Changing git hosts happens less frequently than changing clouds, which is infrequent. Changing VCS tools is even less frequent than either of those
- aidenn0 11mo agogit doesn't do everything that SVN does, so I don't think that's true.
- acoustics 11mo agojj has been fantastic for my productivity, but most of that comes from its alignment with the particular SWE practices on my team: trunk-based development, small atomic commits, quick review turnaround. Getting rid of the staging area and allowing conflicts are the biggest wins for me day-to-day. No more stashing/popping or littering my workspace with WIP commits. It's so easy to whip up a change, send it for review, then ping-pong between writing new code on top of the change and making reviewer-requested edits further down the stack.
- kstrauser 11mo agoWait, what? I’ve spent maybe 10 minutes on a jj tutorial but got distracted. Yours is the kind of anecdote that makes me want to jump back in and push ahead.
- 7e 11mo agoI cannot wait for these big techs to ditch their Mercurial-based solutions, which are frustratingly slow and have surprisingly bad UX. Just get rid of Python completely. The more ampersands in the code for my VCS system, the better it runs.