5 ms·
To me, it makes jujutsu look like the Nix of VCSes. Not meaning to offend anyone: Nix is cool, but adds complexity. And as a disclaimer: I used jujutsu for a f
by palata 7mo ago
To me, it makes jujutsu look like the Nix of VCSes.
Not meaning to offend anyone: Nix is cool, but adds complexity. And as a disclaimer: I used jujutsu for a few months and went back to git. Mostly because git is wired in my fingers, and git is everywhere. Those examples of what jujutsu can do and not git sound nice, but in those few months I never remotely had a need for them, so it felt overkill for me.
- Jenk 7mo agoTbf you wouldn't use/switch to jj for (because of) those kind of commands, and are quite the outlier in the grand list of reasons to use jj. However the option to use the revset language in that manner is a high-ranking reason to use jj in my opinion. The most frequent "complex" command I use is to find commits in my name that are unsigned, and then sign them (this is owing to my workflow with agents that commit on my behalf but I'm not going to give agents my private key!) jj log -r 'mine() & ~signed()' # or if yolo mode... jj sign -r 'mine() & ~signed()' I hadn't even spared a moment to consider the git equivalent but I would humbly expect it to be quite obtuse.
- palata 7mo agoActually, signing was one of the annoying parts of jujutsu for me: I sign with a security key, and the way jujutsu handled signing was very painful to me (I know it can be configured and I tried a few different ways, but it felt inherent to how jujutsu handles commits (revisions?)).
- arccy 7mo agoThe only reasonable way to use signing in jj is with the sign-on-push config https://docs.jj-vcs.dev/latest/config/#automatically-signing-commits https://docs.jj-vcs.dev/latest/config/#automatically-signing... rather than as commits are made
- Zambyte 7mo agoWhy? I have my signing behavior set to own and I haven't noticed any issues, but I don't actually rely on signatures for much.
- singron 7mo agoIf you need to type in a password to unlock your keychain (e.g. default behavior for gpg-agent), then signing commits one at a time constantly is annoying. Does "own" try to sign working copy snapshot commits too? That would greatly increase the number and frequency of signatures.
- Zambyte 7mo agoAh, I use my SSH key to sign my commits and I don't have a password on my SSH key. > Does "own" try to sign working copy snapshot commits too? Yes
- mamcx 7mo agoNo, jj is super simple in daily use, in contrast with git that is a constant chore (and any sane person use alias). This include stuff that in git is a total mess of complexity like dealing with rebases. So not judge the tool for this odd case.
- Exoristos 7mo agoOne rarely needs more from git than `git add -A && git commit -m`.
- tcoff91 7mo agoI rebase stacked diffs all the time so jj makes my life so much easier because its rebasing is much more ergonomic than git.
- beanjuiceII 7mo agothis seems very easy in git tho how much easier can it get, do you have an example of each of them?
- dpatterbee 7mo agoGit rebases don't work if there are conflicts, jj doesn't have this problem. Also idk if you can rebase onto multiple parents with git but jj can do it.
- aidos 7mo agoCan you explain how conflicts are not conflicts? If I change a line of code several times and rebase on to a branch that changed the same lines of code, how are you sure what the right one is?
- sunnyps 7mo agoJJ can save conflict related state with the change so that you don't need to resolve a conflict in the middle of a stack of changes for rebasing to continue for the remaining changes. Concretely, it uses a "conflict algebra" where it can track the impact of a conflict as it propagates through the stack of rebased changes: https://docs.jj-vcs.dev/latest/technical/conflicts/ https://docs.jj-vcs.dev/latest/technical/conflicts/
- rjh29 7mo agoIt's the dvorak of git... Maybe more efficient but incompatible with everyone else and a very loud vocal minority. You can find this pattern again and again. How many redditors say 120fps is essential for gaming or absolutely require a mechanical keyboard?
- SatvikBeri 7mo agoIt's totally compatible though, and that's a big selling point. I use jj and nobody else at my work uses it and that has never been an issue.
- herewulf 7mo agoReminds me of how I started using Git when it was up and coming: It was the best Subversion client out there and no one knew I was using it!
- palata 7mo agoI think the "incompatible" was more in the dvorak sense, which I believe is that whenever you are on another computer, it most likely won't have dvorak. For jujutsu, it's fine on your own computer, but you probably have to use git in the CI or on remote servers. And you probably started with git, so moving to jujutsu was an added effort (similar to dvorak).
- shiroiuma 7mo ago>I think the "incompatible" was more in the dvorak sense, which I believe is that whenever you are on another computer, it most likely won't have dvorak. That's not a problem, just switch to Qwerty when you use a different computer. For me at least, it's not hard at all to switch between Dvorak and Qwerty.
- palata 7mo ago> For me at least, it's not hard at all to switch between Dvorak and Qwerty. Sure, but you had to learn both. And what benefit did you get from learning Dvorak? I feel the same with jujutsu: I have to learn it on top of git, and I don't see a lot of benefits from knowing it.
- buu700 7mo agoI don't know about jujutsu, but I've actually found that Nix removes a lot of complexity. It's essentially just npm for tooling. Managing a flake.nix can be a bit more complex than a package.json in practice, due to the flexibility of the format and some quirks around Nix's default caching behavior, but working with it is a breath of fresh air compared relying on globally installed tools. Having said that, you might want to check out Devbox. I haven't used it myself, but found it recently and thought it looked like a nice abstraction over raw Nix.
- qudat 7mo agoTo be completely fair to JJ: you can still use git commands and any aliases with it. I daily JJ in all of my repos but I created these aliases inside of git. That's one of the great aspects of JJ: it's fully compatible with git.
- alper 7mo agoNix does not really work in that even basic things are absurdly complicated and can take days of messing with poor libraries and documentation. That's not been my experience with jj which after the initial hurdle is a breeze.