lock file state when in rebase conflicts#7377
Conversation
|
This is great! The only thing I'm curious about is whether people might be confused by the unchecked portion and not being able to do anything about it. |
We could use the commit form to provide more context: Maybe an |
|
Tested the functionality and LGTM. |
|
Dropping |
The Another consideration is to hide the checkboxes for all files since it seems like we wouldn't want users to interact with the list at all. |
|
@donokuda that's a good shout - I'll try it out!
I worry about removing the checkboxes because their state is still helpful to indicate what will be rebased and what will be skipped, and for any unexpected side-effects in the DOM (we've not tried this before). |
|
Thoughts on going even more minimal and starting off with no octicon and putting the text below the button? After looking at my original proposal again, I'm not really sold on how it visually looks with the added icon. If we find out that it's confusing to a lot of people, we can go back to the drawing board.
Makes sense, I'd rather keep this as simple as possible than adding more scope without realizing the consequences of it. |
|
I'm a big fan of minimal, especially since my concern might be completely unfounded and people will just be like, "yeah, of course it works that way." |
|
@donokuda I dig the mininalism. Let me push some changes to this branch and get a working demo together... |
6fc74e0 to
58f28ce
Compare
|
@shiftkey Looks good! Is it "Uncommitted" or "Untracked"? I assume you've got it right - just making sure. |
|
The last item on my list is what to do with the context menu that is shown: My current thinking on this is that, when in the middle of a rebase conflict, these options should only be enabled: We could also show "Discard Changes" if the file is untracked, as a convenient way to address the warning. I need to do some internals refactoring to be able to change this behaviour, but let me know if you have suggestions about the list to show in this state. |
@billygriffin "Uncommitted" is too vague for my liking in this situation. Git has two terms which are more explicit:
That's why I've settled on "Untracked" here... EDIT: I meant to use |
billygriffin
left a comment
There was a problem hiding this comment.
Changed other uncommitted references to "untracked"
Co-Authored-By: shiftkey <brendan@github.com>
|
Tested and functionally working 👍
Did catch one thing: 3e3c288, mac |
|
Holding off on final review until we decide if https://github.com/desktop/desktop/pulls?q=is%3Aopen+is%3Apr+no%3Aassignee+label%3Aready-for-review#issuecomment-485977147 should be addressed in this PR. |
Nice find @tierninho. I feel bad for hiding it away, given how not discoverable it is. There's some extra context here that I'll write up into a fresh issue in the morning before I do disable it. |
|
iAmWillShepherd
left a comment
There was a problem hiding this comment.
No need to block based on a comment
|
Merged without updating since doing so would have been the 4th time. |










Overview
Closes #7006
Description
This PR updates the
ChangesListcomponent to lock down the checkboxes when rebase conflicts are detected.Currently you can change all the checkboxes in the list, but these choices are ignored because the rebase flow needs to stage all tracked files (untracked files are ignored by
gitwhen rebasing) to continue correctly:With this PR, we now:
This is how the underlying
git rebaseworks by default, and Desktop needs to follow this convention when staging files before continuing the rebase.TODO:
Release notes
Notes:
[Improved] Changes list state better reflects rebase flow when handling conflicts