Hacker Newsnew | past | comments | ask | show | jobs | submit | tcoff91's commentslogin

Site isn’t working for me on iOS safari.


I should have mentioned. The site uses the FileSystemWritableFileStream API, so Safari/iOS users will need Safari 26.


It’s really nice to use the —-first-parent flag with bisect.


Yeah this is good if you, for some reason, rebase then merge without fast forwarding. I never understood doing this. If I'm going to be ignoring those commits when bisecting then they are useless commits just using up disk space IMO.

Does it work well with a classic merge workflow? I haven't worked that way (without rebasing) for a long time.


For me a merge is about grouping commits, when you have just a list of commits, the list can be very long.

That's also useful for bisecting, as you can first find the feature that is buggy and then find the commit that introduced it.


The whole point of bisect is to make it quicker to find a point in a potentially long list of commits. Finding the feature first then bisecting within the branch is only going to make it slower, and requires you to manually restart the bisect.

I use the commit message to add ticket numbers to things to group commits.


The commits surrounding them (logically) are probably also relevant, which you will find easier when you have grouped commits by features.

I prefer to have everything in a single source of truth (git), so everything is in commits. Your tickets are my merge commits.


First class conflicts are way better than modal states.

https://ofcr.se/jujutsu-merge-workflow/

I literally will have like 4 PRs in flight at once and have an octopus merge of all my separate PRs that I can then work on top of. JJ can rebase all 4 separate branches, the octopus merge, and the work on top of the octopus merge in a single command: jj rebase -d main.

If there are conflicts I can then resolve them whenever I want.

You have no idea what you are talking about if you think git’s interactive rebase holds a candle to what jj rebase can do.


I’ve got to check this out.

I’ve really been loving these two neovim JJ plugins

For splitting commits: https://github.com/julienvincent/hunk.nvim

For resolving conflicts: https://github.com/rafikdraoui/jj-diffconflicts


I loved using Magit. It’s awesome.

But these days, I’ve moved on to jujutsu, a git-compatible version control system with much better primitives than git.

If you haven’t tried jj, I highly recommend it. The first-class conflicts and powerful but simple primitives for editing the commit graph are amazing.

It makes stacking branches an absolute breeze compared to git. And since it is git compatible nobody on your team has to change how they work.


Yep. Having made the switch, I now see git (as a user-facing VCS) as a dead end.

It’ll take awhile for people to switch, but I think it will happen eventually. Invisible git compatibility means we don’t have to get everyone to switch all at once, and the benefits of primitives more aligned with the mental model of what we’re trying to do are undeniable.


This is delusional. Sorry, but you’re only shifting git with dynamite at this point.


No, git is not going away. It's not radically rejected. To the contrary, Jiujutsu builds upon git, and remains backwards-compatible, within reason.

It's like using Zig instead of C. You get a much better, handier tool, but you can interact with C very easily, transparently. You can mix and match.

Things like Monotone and Darcs were exquisite research projects, they tested many important ideas, but could not hope to become the standard. Jiujutsu does have this chance.


Problem with GitHub is that the VCS is in the name, so they would have to re-brand themselves (which might end up in losing loads of users) before they start supporting an alternative VCS.

I agree anyways, replacing Git is or would be a very difficult task in many cases.

That said, let us say I have a team of 3 people and we are starting a new project. We can definitely choose something other than Git, like Darcs (or later Pijul). If we use a project management software that only supports git, however, then that would be a very limiting factor. We probably would just continue using git, or use another project management software or I have no idea. I have used Git most of the time ever since I started using VCSs.


But that’s what’s so great about jj vs pijul: it supports git as a backend. So you still get to use GitHub and all the things that go along with git.


Git as a backend (with some amendments) is lovely and brilliant. Git as a front end is legendarily difficult to use.

Jujutsu has all the advantages with none of the downsides and—unlike the alternatives—adoption doesn’t need to happen all at once. Every single person who I’ve convinced to give it a meaningful shot has fully converted. That speaks volumes.


I yearned for something like jj before I knew of magit. I was very used to the hg way of doing things and so git is a downgrade. But with magit I'm satisfied enough that I haven't felt a need to switch. Going back to typing commands in a terminal felt backwards. And magit makes a lot of things easy, like splitting commits (u on the hunk and then c e c -a c), moving commits from one branch to a new branch (A s), and moving commits from one branch to another (r s). What makes jj better than magit?


magit can only be as good as git.

jj’s first class conflicts and the way it handles rebase offers a UX that’s not possible with git.

Like with jj rebasing a stack of branches is just a single command. In git you would have to rebase the branch at the top and then hard reset each branch pointer one by one. jj’s rebase is just more powerful than git’s. Like it doesn’t just rebase a linear series of commits it rebases merge commits, other sibling branches, etc… it’s absolutely mind blowing.

https://ofcr.se/jujutsu-merge-workflow/


Rebasing a stack of branches in git can also be pretty simple, with --update-refs. There's a good article here: https://andrewlock.net/working-with-stacked-branches-in-git-...


Yeah but with jj it rebases all the like side quest experimental anonymous branches too. In git rebase is a list of commits to be picked. In jj it is just so much more powerful. In git you can’t rebase all 4 parallel PRs you have in flight and the octopus merge that you are working off of that merges them all together.

There’s workflows that I do with jj that are just completely impractical with git.


any advice on learning jujutsu? i keep bouncing off tutorials and blog posts about it. i’ve had a difficult time trying to map the github-centric branch-based workflow to jj. i’m sure part of the problem is “don’t try to use it like git”, but i haven’t gotten to the aha moment where it clicks.


You can 100% use it with that workflow, and there is no problem in doing that. You could use other workflows but those are things you can pick up as you gain more familiarity.

What I would focus on is what it enables you to do that’s hard in git: editing and revising commits that you’re iterating on, extracting out a large block of work into smaller commits, or splitting unrelated work out into a separate branch without needing to do a bunch of stashing, jumping around between branches, rebasing, etc.

Hell, even just being able to switch branches without having to do a wip commit or mess around with the stash is worth the price of admission to me. And having all of my work tracked during a long rewrite even if I don’t think to make checkpoint commits along the way.

But yeah, I’d 100% focus on what new superpowers you can add to your existing workflow before trying to actually change your workflow.


Just dive in and force yourself to use it. Keep the branch based workflow until you are more comfortable with the tool. Then try more exotic workflows.

jj git fetch to pull upstream main.

jj rebase -d main to rebase your branch on main

As you add commits to your branch jj bookmark move to update the branch then jj git push -b branchname to push it to remote

Also I highly recommend a couple neovim plugins: hunk.nvim for splitting commits and jjdiffconflicts.nvim for resolving conflicts.


I'm a long time magit user and jj is basically just how I just git! At least close enough. I owe most of my git proficiency to magit. I understand how people are confused by just using the CLI. So I'm all for higher level tools like jj. Don't think I could give up the magit interface, though, unless there's something similar for jj?


I really want to use something like Darcs or Pijul, but Pijul is not ready yet, AFAIK.


At this point if you still use Hertz you are just a dumbass straight up.


Your mistake was renting with Hertz. This is the same company that literally got their customers arrested for grand theft auto due to negligently reporting cars stolen that had in fact not been stolen.


All rental car companies devolve into poorly-run scams. My pet theory is they're actually renting the cars at a loss to stay competitive, and then they need to con the money back to stay afloat.


Yeah but only Hertz mistakenly put many their customers in Jail. That’s a whole other level of incompetence.


If you want the Whispersync experience without Amazon, use Storyteller:

https://storyteller-platform.gitlab.com.io/storyteller/

It has a server and mobile apps for reading.

It produces EPUB3 files with embedded audio aligned with the text. Use Libation and Calibre to strip your DRM or use Libro.fm to buy audiobooks without DRM.


I think this is the link you want: https://gitlab.com/storyteller-platform/storyteller


My link was wrong: https://storyteller-platform.gitlab.io/storyteller/

This is the docs site


I am yet to get Whispersync going using 100% amazon products.


Yeah honestly storyteller works better than Whispersync. I sought this app out because Amazon won’t do whispersync for audiobooks longer than like 44 hrs or something like that. I could not get whispersync for Stormlight archive. Storyteller on the other hand delivered no problem.


I really like Boox devices. It’s a full on android tablet with e ink.


Boox is great once you bend it to your will but there is a lot of obscure option mangling to do it. It's not malicious - the boox people are trying to hide the footguns - but there is a lot of "Why doesn't X work?" until you find some buried setting.


100%. It’s got a learning curve. Especially with the color ones, until you find the dark color enhancement setting, text is not dark enough.

I opt for Boox because I run the Storyteller app on it, which I also run on my phone so I can easily switch back and forth between listening and reading.

It’s phenomenal once you get it dialed in with storyteller.


Also open floor plans suck


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: