Live data from Hacker News

I'm daily driving Jujutsu, and maybe you should too

drewdevault.com

11–20 of 50 posts

Re: I'm daily driving Jujutsu, and maybe you should too

#11
post #9

I don't like it, I was expecting something new that replaces Git with a new idea about versioning. I can already work extremely fast in Git by using bash aliases and my workflow. This might be useful for those starting out.

> replaces Git with a new idea about versioning With the advent of LSP I feel like we're almost to a point where you could version structures and not code. Like being able to follow how some class / method got cut in multiple pieces during a refactoring round. Or maybe we need something more than plaintext to store code and the meta data around it before we can get to this point. I'm sure it has been already done mul…

Things like difftastic work perfectly fine with git

https://difftastic.wilfred.me.uk/

Re: I'm daily driving Jujutsu, and maybe you should too

#12
post #8

Why is there no git-light VCS, with only the top 5-8 commands available? Push, fetch, commit, merge, rebase, branch, init... maybe I forget 1 or 2. I have to think extremely hard what command I used intentionally in the past 10 years (sometimes I used some arcane commands, only to fix some problems that was caused by some other arcane commands)

Surely you can just use git and limit yourself to the commands you're comfortable with?

I've used git effectively and painlessly for many years, and pretty much all commands I ever use are commit, pull, push, checkout, merge and rebase. :) And diff if for whatever reason my IDE is not open already.

Re: I'm daily driving Jujutsu, and maybe you should too

#13
The one thing keeping me from switching fulltime is the friction of keeping unstaged changes in the repo. It's pretty common for me to have some throwaway lines like DEBUG = true or setLogLevel(LogLevel.VERBOSE) that are "permanent" in my dev environment but I never want to commit.

With git I can just `git add --patch` and skip over these at commit time (which I like, since I review my own code as I'm staging it), but jj doesn't have the index and pushes you to commit all changes by default. I know there are workarounds like `jj split` but it ended up being more work than git, where I can just not add those changes in the first place.

Re: I'm daily driving Jujutsu, and maybe you should too

#14
post #9

I don't like it, I was expecting something new that replaces Git with a new idea about versioning. I can already work extremely fast in Git by using bash aliases and my workflow. This might be useful for those starting out.

> replaces Git with a new idea about versioning With the advent of LSP I feel like we're almost to a point where you could version structures and not code. Like being able to follow how some class / method got cut in multiple pieces during a refactoring round. Or maybe we need something more than plaintext to store code and the meta data around it before we can get to this point. I'm sure it has been already done mul…

Problem is metadata is taking much more time/space to fill in and context to be encoded will be awful lot of typing for a person.

When writing code context is encoded in the code and if you start on new project you need to read documentation and ask people around to pass you the context so you don’t need metadata. Or so to say all stuff that is in tickets and documentation plus what is in other teammates heads.

There’s just no way it will be efficient to somehow drop all of it while you want to do the code.

Re: I'm daily driving Jujutsu, and maybe you should too

#15
post #3

Earlier quoted context omitted.

There's Openbsd's got[0]. 0. https://gameoftrees.org/index.html

Almost... but not what I'm looking for. I'm looking for something without actual git. I can also just ignore most of the ugly commands of git, but I'm thinking of something that doesn't make me think of what commands are worth remembering. I'm looking for "simple code versioning for dummies, that you can't break even if you tried hard"

Simplicity is in the eye of the beholder but Pijul claims to be "easy to learn and use".

https://pijul.org/

Re: I'm daily driving Jujutsu, and maybe you should too

#16

The one thing keeping me from switching fulltime is the friction of keeping unstaged changes in the repo. It's pretty common for me to have some throwaway lines like DEBUG = true or setLogLevel(LogLevel.VERBOSE) that are "permanent" in my dev environment but I never want to commit. With git I can just `git add --patch` and skip over these at commit time (which I like, since I review my own code as I'm staging it), bu…

The ”staging” concept in git is something that I know really bugs a lot of people, especially beginners with git. Like ”I just want to commit, why is there this extra step?”, but I totally agree with you. Maybe it’s Stockholm Syndrome, but I really like that there’s an extra “look through your changes” procedure before committing, exactly for reasons like this.

Re: I'm daily driving Jujutsu, and maybe you should too

#17

Why is there no git-light VCS, with only the top 5-8 commands available? Push, fetch, commit, merge, rebase, branch, init... maybe I forget 1 or 2. I have to think extremely hard what command I used intentionally in the past 10 years (sometimes I used some arcane commands, only to fix some problems that was caused by some other arcane commands)

Not exactly what you asked for but if you are an emacs user, magit will make using git so much more pleasant. https://magit.vc/

Generally most IDEs will help you out with basic git tasks without even needing to know commands. There also dedicated GUIs for git.

Though for full time devs just learning how to use plain git isn't that hard. I very rarely have to look up git commands these days. You can limit yourself to the basic commands first.

Re: I'm daily driving Jujutsu, and maybe you should too

#18

Why is there no git-light VCS, with only the top 5-8 commands available? Push, fetch, commit, merge, rebase, branch, init... maybe I forget 1 or 2. I have to think extremely hard what command I used intentionally in the past 10 years (sometimes I used some arcane commands, only to fix some problems that was caused by some other arcane commands)

I think you're going about it in the wrong direction. Instead of learning what each command does, try learning what operations are possible (eg: move the current branch-ref to another commit, transplant a bunch of commits from one commit to another, etc). You just associate the commands to those operations through repeated use - no forced learning necessary. Recollecting the command is just a manpage away even for rarely performed operations. That makes it easy to learn not just the subcommands, but complex flag combinations as well.

This method also lends well to problem solving. You don't look at a repo and immediately think 'what commands will I use?'. You start with the problem. Then you formulate a solution as a sequence of operations that you know. You may be able to solve a problem with more operations even if you know fewer operations. Finally, convert each operation into a command and execute them.

Even the pro-git book is structured this way.

Re: I'm daily driving Jujutsu, and maybe you should too

#19
post #3

Earlier quoted context omitted.

There's Openbsd's got[0]. 0. https://gameoftrees.org/index.html

Almost... but not what I'm looking for. I'm looking for something without actual git. I can also just ignore most of the ugly commands of git, but I'm thinking of something that doesn't make me think of what commands are worth remembering. I'm looking for "simple code versioning for dummies, that you can't break even if you tried hard"

Like the sibling comment mentioned, what you're looking for is fossil [0].

Fossil was created by Richard Hipp, who's also the creator of SQLite.

Fossil as a version management system gets completely out of the way.

In all the years over used Fossil, I've rarely had to use more than a few commands and have never had to understand any underlying concepts, let alone trying to figure out how to use the commands.

Additionally, fossil also comes with a wiki and a bug tracker, which is a bonus.

[0]: https://fossil-scm.org/

Re: I'm daily driving Jujutsu, and maybe you should too

#20

Why is there no git-light VCS, with only the top 5-8 commands available? Push, fetch, commit, merge, rebase, branch, init... maybe I forget 1 or 2. I have to think extremely hard what command I used intentionally in the past 10 years (sometimes I used some arcane commands, only to fix some problems that was caused by some other arcane commands)

Not exactly what you asked for but if you are an emacs user, magit will make using git so much more pleasant. https://magit.vc/ Generally most IDEs will help you out with basic git tasks without even needing to know commands. There also dedicated GUIs for git. Though for full time devs just learning how to use plain git isn't that hard. I very rarely have to look up git commands these days. You can limit yourself to…

Magit is more like a keyboard shortcut for those who already know their way around the git CLI. The direct mapping of CLI to short key sequences and the coherent visual feedback are the qualities that make magit so popular. I don't think someone who finds the CLI unpleasant will find magit to be any better.
Post reply on HN