Live data from Hacker News

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

github.com

191–200 of 269 posts

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

#191
post #113

Oh its from Google? Eh. Pass. It will either be killed in 5 years, or be pitted against Git in an attempt to take over the community.

The "disclaimer" is quite interesting. Starts off with "this is not a Google product" and ends it with the fact that it is indeed their full-time project at Google.

I wish these well-intentioned Googlers realise what they are doing.

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

#192
post #113

Oh its from Google? Eh. Pass. It will either be killed in 5 years, or be pitted against Git in an attempt to take over the community.

Oh, and you might be interested in https://radicle.xyz/. I tried it a while ago, was stable and has nice aesthetics to it as a bonus.

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

#193
post #97

Earlier quoted context omitted.

So in your workflow you never "git commit -a"? So you have to always manually mark what you stage. Which is probably more work than always manually removing the changes you don't want to commit. The ability to rewrite older commits easily in jj also looks like it would help with this usecase if you get it wrong once. Concretely I think you would do is: Instead of staging part of your changes and then committing as in…

> So in your workflow you never "git commit -a"? I like seeing what I'm about to commit, so I always do `git commit -p` or `git add -i`. Most people where I work do the same, so I don't think this workflow is uncommon.

I never `git commit -a`, because I'm paranoid that I've done something like named a variable "foo" as I'm just working through the logic and not caring about naming.

I'll then go back through, tidy and add all my changes.

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

#194
post #60

Earlier quoted context omitted.

gitignores are usually committed (they're treated like a normal file), so yes, in this context that would delete it from everyone. There's .git/info/exclude, but that has some kinda large surprises if it excludes a tracked file and I don't recommend anyone use it unless they know what to look for and can always remember what they've excluded.

I have a $HOME/.gitignore that I use for this. (You can configure git to use that globally.) It's not a panacea, and I think other commenters are right that you should instead endeavor to organize things so that the project's own gitignore results in a sane workflow. But I think having permanently unstaged changes is worse.

It's the perfect location to ignore *.log.

Git will fight you if you ignore .config files which are actually used.

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

#195
post #187

Has anyone tried both this and Sapling? https://engineering.fb.com/2022/11/15/open-source/sapling-so... Both of these are on my TODO lists but haven't had time to try them yet.

Check out https://github.com/martinvonz/jj/blob/main/docs/sapling-comp...

In my opinion:

- Sapling is much more mature/full-featured at this point. - Jujutsu improves source control workflows in a more principled way. - Jujutsu currently supports colocation with a Git repo, while Sapling requires that the Git repo be kept separately.

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

#198

Earlier quoted context omitted.

Why do you want such big files in a git repo?

How about why not? The only reason it's not done is because git doesn't support it.

Maybe I came across as accusative, but I'm genuinely curious. Do you have 1Tb text files or this is some kind of media management for video production, something like that?

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

#199

"working copy is automatically committed" seems like a good idea at first glance, but there are many situations where this is not a good idea: - when new artefact files are added and you have not yet added them to .gitignore, they'll be automatically committed - when you have added ignored files in one branch and switch to another branch, the files will still be in your working copy but not listed in your .gitignore…

> staging only some files and comitting is much easier than splitting a commit after the fact Re this point, how is it any different? "Staging" the files is essentially the same as splitting the commit, anyways — it's just that the newly-split contents go into a "staging area" vs a commit. Do you mean that the tooling to accomplish this is not good?

Staging is additive, while splitting is subtractive

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

#200

Earlier quoted context omitted.

> staging only some files and comitting is much easier than splitting a commit after the fact Re this point, how is it any different? "Staging" the files is essentially the same as splitting the commit, anyways — it's just that the newly-split contents go into a "staging area" vs a commit. Do you mean that the tooling to accomplish this is not good?

Staging is additive, while splitting is subtractive

I am working on a TUI tool for Git/jj to handle staging/splitting. Could you tell me more about what workflow would be problematic for you? For example, if you had to select lines that go in the first commit/staging area, does that work? Would it be better or worse if, for each line, you had to decide whether it would go into the first commit/staged vs second commit/unstaged area? Do you ever need to invert the first commit/staging area vs second commit/unstaged area?
Post reply on HN