Repository navigation
Replies: 5 comments 10 replies
|
I wonder if (The text could be more explanatory) |
|
What did you expect / want to happen? You did a Also, I'm not sure the suggestion to have If you foresee yourself doing this a lot (I know someone who does), a solution I've heard of is to alias |
|
I worked with @jvns on writing this up. It's a situation I find myself in sometimes when doing a re-describe pass to tidy up the commit descriptions, and it's pretty annoying. Re
This is not the case: in the example above, the describe was against the change This is visible in the final log showing the divergent changes, and in the op log showing the concurrent / divergent operations and their automatic reconciliation. As for what could happen, there are at least a few options that would really help usability IMO. I don't have stats on how often different sources of divergence occur, but the long-running describe is probably pretty high on the list. Some ideas we came up with that are more user-friendly:
I'm pretty sure there are other things in the design space that would make it harder to get into a state where |
|
Does the new |
|
FWIW, I would not mind if we had an opt-out (?) lock held by basically all commands. I think it's important that we don't need locks for correctness (no data loss without the locks), but I don't mind adding this kind of advisory locks for better UX. |
Uh oh!
There was an error while loading. Please reload this page.
I ran into an issue where something bad happened and
jj undodidn't help. For me a big part of the promise of jj is that I can usejj undoto recover from mistakes.I was doing something very basic, using jj 0.45.1:
jj describejj squashin another tabThis put me in a divergent state that I couldn't use
jj undoto get out of. This is pretty basic/beginner usage of jj and IMO it shouldn't put you in a position where you have to learn about the op log andjj op restore. I would have much preferred it if e.g. jj refused to let me runjj squashwhile I had thedescribeopen.I'm very far from having a full understanding of all the reasons jj can end up with divergent states, so I don't know what jj should do here. This made me feel scared of using jj and it makes it hard for me to recommend to others. I've stopped using jj for now but hope to come back and try again later because I'm excited about the project.
Here's a small repro and all the error messages I ran into. Also apologies if "ideas" is not the right place, I tried to find the best fit.
Steps to reproduce
Repo setup:
jj log output to show the change IDs:
Now open another terminal so we can run jj commands in parallel.
jj describe mmxqnwzu. Leave editor open & don't save.touch file.txtjj squash --into ouyrmxlvTerminal 1 output (from
jj squash --into ouyrmxlv)Terminal 2 error (from
jj describe mmxqnwzu):Now try to fix it with
jj undo. This fails::Now
jj log:And
jj op log:on jj converge
I asked in the Discord and got some advice to run
jj converge. This is what it outputs. I don't understand what this means and it feels much too complicated relative to what I was trying to do.All reactions