Live data from Hacker News

Jujutsu: A Git-compatible DVCS that is both simple and powerful

github.com

81–90 of 269 posts

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#81
post #25

Earlier quoted context omitted.

> which is distributed and egalitarian at its core, is a better model for a fast-paced, globally distributed community of developers than previous monorepo systems like Mercurial I'm a bit confused by this. I don't think that's what monorepo means, is it? Monorepo is what you choose to put in a repo? And I thought Mercurial was extremely similar to Git as it's also a DVCS?

It is. The OP is wrong, probably because he has never used Mercurial, which wouldn’t be that surprising given it doesn’t have a lot of users outside of the few remaining companies still using it.

I've never used it, but I have read hg.init[0]!

[0] https://hginit.com

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#82
post #73
post #48

The tool looks great; I have a hurdle to overcome with the name. I'm long accustomed to spelling it, in English, as Jujitsu. I've also seen Jiu-jitsu. "jutsu" is much less common, IME. Is there such thing as canonical Romanisation of Nipponese? I can deal with a project being "wrong" better than not knowing which of us is wrong.

There are multiple romanisation systems for Japanese, but the most common one is Hepburn. In Japan, Kunrei-shiki is sometimes used (especially by the government), which is designed with Japanese speakers in mind (vs Hepburn which was designed with English speakers in mind). It's jujutsu in both, but there are varying ways of representing the long vowel on the first "u" -- either omitting it (jujutsu), using a macron…

So is it pronounced like it looks here? I've never seen this spelling before, and IME (and I assume GP's) everyone says 'jew-jit-sue'. But it's more like 'jew-jut-sue' (as in to jut out)?

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#83
post #27

Related DVCS: https://pijul.org/ I need to try it out at $WORK since constant rebasing on a busy repo with a hundred or so committers is not fun.

Pijul needs a 1.0 release if it wants wide adoption. I don't understand why they wait.

Meanwhile, if rebasing on git is an issue, you should probably try stacked-git (https://stacked-git.github.io/). It manages commits as a stack of patches - like quilt, but on top of git.

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#84
> If an operation results in conflicts, information about those conflicts will be recorded in the commit(s). The operation will succeed. You can then resolve the conflicts later.

I’m really glad people are trying this out. I’ve spent the last decade or so playing with collaborative editing algorithms. Ideally I’d like tools like git to eventually be replaced by CRDT based approaches. CRDTs would let us use the same tools to do pair programming. CRDTs also handle complex merges better (no self-conflicts like you can get with git). And they’re generally a more powerful model.

One problem with all modern text CRDTs (that I know of) is that they do automatic conflict-free resolution of concurrent edits. But when we collaborate offline on code, we usually want conflicts to show up and be resolved by hand. CRDTs should be able to handle that no problem - they have more information about the edit history than git, but doing this properly will (I think) require that we put the conflicts themselves into the data model for what a text file is. And I’m not sure how that should all work with modern text editors!

Anyway, it sounds like jj has figured out the same trick. I’m excited to see how well it works in practice. With this we’re one step closer to my dream of having a crdt based code repository!

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#85
post #45

Earlier quoted context omitted.

Sometimes you have changes that are permanent to your repo (ie local workflow), that you always want to keep locally, but never push to the remote. In git you would always leave the changes unstage, does that mean with jj you would always have to remove them before pushing? I haven’t found an answer on the linked page. Side note: I really wish git had a way to mark commit has ‘no-push’ so they never leave your local…

Isn’t this just .gitignore? I feel like I’m missing something.

[deleted]

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#86
post #42

Do I understand this correctly? This is some kind of background process that automatically commits any changes you make. You can use the CLI to check what it did and if you want to modify the auto commits.

No daemon, it happens 'whenever you run a command'.

> Commands snapshot the working copy before they start, then the update the repo, and then the working copy is updated (if the working-copy commit was modified). Almost all commands (even checkout!) operate on the commits in the repo, leaving the common functionality of snapshotting and updating of the working copy to centralized code.

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#87

Earlier quoted context omitted.

That won't work for local changes to files that are legitimately committed in the repo. Like if you need to set your local database, or your own dev hostname in config, for example.

For this, you can use .git/info/exclude.

That only works for nonexistent files right? Not files that exist but whose modifications you want to ignore.

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#88
post #31

Earlier quoted context omitted.

Isn't the idea that you continue editing the working copy commit until you actually commit it? Also from the documentation: https://github.com/martinvonz/jj/blob/main/docs/git-comparis... "As a Git power-user, you may think that you need the power of the index to commit only part of the working copy. However, Jujutsu provides commands for more directly achieving most use cases you're used to using Git's index for. Fo…

Sometimes you have changes that are permanent to your repo (ie local workflow), that you always want to keep locally, but never push to the remote. In git you would always leave the changes unstage, does that mean with jj you would always have to remove them before pushing? I haven’t found an answer on the linked page. Side note: I really wish git had a way to mark commit has ‘no-push’ so they never leave your local…

I think you want git's skip-worktree?

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#89
post #11

Earlier quoted context omitted.

It's a horrible name to pronounce for many non-English speakers.

Did you know that the English way to pronounce "jujutsu" isn't how the Japanese pronounce it? The Japanese way to pronounce it could actually be a lot easier for many non-English speakers (I'd anyway argue it's a common enough word that people are familiar enough with it to pronounce it in a way that's comfortable to them).

> Did you know that the English way to pronounce "jujutsu" isn't how the Japanese pronounce it?

That's kind of tautological ...

However, yes, that is certainly true. Japanese has a pitch accent rather than a stress accent and all syllables are roughly the same length. English speakers don't tend to talk that way.

Re: Jujutsu: A Git-compatible DVCS that is both simple and powerful

#90
post #45

Earlier quoted context omitted.

Isn’t this just .gitignore? I feel like I’m missing something.

That won't work for local changes to files that are legitimately committed in the repo. Like if you need to set your local database, or your own dev hostname in config, for example.

This is a smell that you should refactor how your configuration is done. What happens when there's a legit change to the config? If it's in git with `update-index`, you're going to have a hard time actually changing that file and getting the changes to the team. There are other reasons, but this is why things like 12 Factor recommend putting config in environment variables. It's made my life much easier. https://12factor.net/config
Post reply on HN