Live data from Hacker News

jj – the CLI for Jujutsu

steveklabnik.github.io

321–330 of 517 posts

Re: jj – the CLI for Jujutsu

#321
post #297

Earlier quoted context omitted.

I didn't cover it for various reasons, but I think it's good to teach now that I've had more time to consider this sort of thing, so the next iteration will likely start by beginning with jj commit.

In a pure `jj` model, commit might not even be necessary as it's own subcommand (since you could easily define an alias for `desc` followed by `new`). We're still living in a world where most people who would consider adopting `jj` are git users currently, so I wonder if starting with `commit` and then following it up with an explanation of "here's how you can change the commit message without needing to make a new c…

Yes, I do think that the latter is correct now.

I tend to learn "bottom-up", so I like the new + describe as a way of learning, but people want to jump in and get going with tools, so commit fits that expectation better.

Re: jj – the CLI for Jujutsu

#322
post #314

Earlier quoted context omitted.

I'm asking for a github replacement, alas it might come from github itself with stacked PRs. git is good, but jj is good, too. nobody asked for a better CVS either, until someone did.

are you conflating github and git? I'm just confused as to how jj is a replacement to github

I'm not, github sucks, git is ok. Stacked PRs are what jj makes easy but is completely broken in github and as of today they're releasing a 'stacked prs' product which only makes jj better value when working with github vs git.

Re: jj – the CLI for Jujutsu

#323
post #294

Earlier quoted context omitted.

If you don't provide it a it reads from the index (staged files). So you're right its not really pointed anywhere, since the index isn't a ref.

That's my overall point: the argument itself (with respect to the current state of the repo) is what determines the behavior. I don't think this is anywhere close to as intuitive as commands that only ever accept one "type" of argument (and erroring if it's different).

I stand corrected by this one scenario, but I’ve been using git for over a decade and never found that useful. Just don’t use checkout on a file path, there is no need.

Re: jj – the CLI for Jujutsu

#324

> $ cargo install jj-cli@0.23.0 --locked I won't install Rust just to test your software. Make a debian package like everyone else.

Immediately after that line: > If you're not a Rust developer, please read the documentation to figure out how to install things on your platform Rather selective reading we have here, don't we?

I did! No apt install jujutsu. I also did 'apt search jujutsu'.

Don't ask me to care about yet another language's package manager, I already know way more than I wish to.

Re: jj – the CLI for Jujutsu

#325
post #135

> $ cargo install jj-cli@0.23.0 --locked I won't install Rust just to test your software. Make a debian package like everyone else.

I believe the full docs page does indicate that there are binaries to install via popular package managers [1] [1]: https://docs.jj-vcs.dev/latest/install-and-setup/

I did check that page, as far as I can tell you still need to run Cargo which I don't want to do because I don't care about Rust.

I'm not complaining for the sake of complaining, I'm saying if they want to play in the Big Boy leagues, they need to do things right.

Re: jj – the CLI for Jujutsu

#327

Earlier quoted context omitted.

To add a new backend, there's a trait that you implement for your backend: https://github.com/jj-vcs/jj/blob/713a0d0898448392d38fdcbaba... I suspect if you came by the jj discord, folks could help you with more detail than that.

Thanks for the link. It looks like this treats files as blobs just like Git, and trees as single objects which fit in memory. Assuming that is a correct understanding, this core abstraction would need to change to handle large files and directories well. All the well known version control systems do this though, and it simplifies the system significantly. It's the right model for source code, but it doesn't translate…

Yes, it will require work to do large files well. But there is general interest in upstream in having that, there's just nobody driving the work at the moment.

Re: jj – the CLI for Jujutsu

#328

Earlier quoted context omitted.

You're not an alien: this is the workflow that GitHub encourages. It's just that not every tool is GitHub. Other systems, like Gerrit, don't use the PR as the unit of change: they use the commit itself. And you do regularly ship individual commits. Instead of squashing at the end, you squash during development.

Thanks for explaining that. Having a bit of a (dim) lightbulb moment now. I’ve never used Gerrit - just GitHub and GitLab and Forgejo. So I assumed the PR/MR model was more or less universal. But if smaller development commits are being squashed into the shippable/reviewable unit - then the focus on commits makes a lot more sense.

You're welcome! It is one of those "do fish realize they're wet" kind of things, tools can shape our perception so strongly that you don't even realize that they're doing it!

Re: jj – the CLI for Jujutsu

#329
post #113

Earlier quoted context omitted.

The idiom here is use `edit` if you want to edit a commit, and use `new` if you want to make a new commit. This works identically whether you specify the commit via branch name or commit id. I'm not sure why people are saying not to use `edit` ever. It's basically just a shorthand for staging and amending changes in an existing commit, and there's still a use case for that; it's just not "I want to see the changes on…

> Just don't ever use `edit`, > The idiom here is use `edit` if you want to edit a commit You know, you guys have fun with that, I'll continue using git which (probably) has the same amount of warts, but I already know them. I'll continue to refer new VCS users to jj, seems a lot easier to learn, but really don't have the interest to re-learn a bunch of ever-changing idioms.

No system is perfect, but there's nothing wrong with `jj edit` and `jj new`. Both commands are completely reasonable and do what you think they would do.

Re: jj – the CLI for Jujutsu

#330

Earlier quoted context omitted.

jj automatically hides "uninteresting" changes. Most of the time, this is good. Occasionally, I need to see more changes. It is not obvious to me how I get jj to show me elided changes. I mean, sure, I can explicitly ask jj to show me the one ancestor of the last visible change, and then show me the ancestor of that one, etc. Is some flag to say: "just show me 15 more changes that you would otherwise elide"?

Easy: `jj log -n 25` (Default is 10 iirc, so if you want 15 more... 25) If you want everything, ever: `jj log -r ::` Or every ancestor of your current change: `jj log -r ..@`

IIRC -n only limits the output, not expands it. jj log and jj long -n 25 show the same results for me.
Post reply on HN