Go read the actual thread. There was a bug someone found that files you have in there that aren’t even associated with git still get deleted. I’m not entirely convinced this was the poster’s fault.
It’s not a bug, it’s intentional. They consider changes to be any change since the last commit including in untracked files. They did update it to make this behavior a lot more obvious though.
Yes, honestly this situation reminds me a lot of the LTT trying Linux and destroying his system by installing steam despite apt warning him in the best way it really could that he probably didn’t want to do that. Sure the package shouldn’t have been in that state in a stable distro but shit happens. It goes to that point of, users will go through great lengths to achieve the end goal blindly jumping past warnings on the way no matter how dire they might be.
If you use git and understand that VSC’s source control stuff is just a thin wrapper around git, you should understand what “discard all changes” means
I’m not claiming that “discard” is a git action. I’m claiming a git user should understand what’s meant by the phrase “discard changes”. Run git status in a repo that has changes in the working directory. In the resulting output, there’s a message:
Changes not staged for commit:
(use "git add <file>..."toupdate what will be committed)
(use "git restore <file>..."to discard changes in working directory)
...
The phrase “discard changes” is used consistently in git’s output.
It does warn you it will erase the file when you discard…
Go read the actual thread. There was a bug someone found that files you have in there that aren’t even associated with git still get deleted. I’m not entirely convinced this was the poster’s fault.
It’s not a bug, it’s intentional. They consider changes to be any change since the last commit including in untracked files. They did update it to make this behavior a lot more obvious though.
This comment in particular does a great job of explaining the UX problem with this. https://github.com/microsoft/vscode/issues/32459#issuecomment-322160461
Yes, honestly this situation reminds me a lot of the LTT trying Linux and destroying his system by installing steam despite apt warning him in the best way it really could that he probably didn’t want to do that. Sure the package shouldn’t have been in that state in a stable distro but shit happens. It goes to that point of, users will go through great lengths to achieve the end goal blindly jumping past warnings on the way no matter how dire they might be.
I did read the whole thread. I also referenced the resolution further down the comment thread.
They’ve adjusted the error message to be abundantly clear after the fact.
Warns you that changes will be discarded…not quite the same words
I just tried right now to get the exact message.
The confirmation button even says
Delete File
…User error.
This issue was from 2017
Ah looking at issue 32459 it was addressed shortly after.
You’re right that it did originally say “Discard”.
If you use git and understand that VSC’s source control stuff is just a thin wrapper around git, you should understand what “discard all changes” means
“discard” is not a git operation. Reset and restore are, but those weren’t the words used.
I’m not claiming that “discard” is a git action. I’m claiming a git user should understand what’s meant by the phrase “discard changes”. Run
git status
in a repo that has changes in the working directory. In the resulting output, there’s a message:Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) ...
The phrase “discard changes” is used consistently in git’s output.
Read this comment from the linked bug. https://github.com/microsoft/vscode/issues/32459#issuecomment-322160461
Ok that’s understandable, I didn’t realize VSCode used to delete untracked files as well as a result of clicking through that dialogue.
Man who clicks confirmation for leopards to delete his work is angry and surprised when his work is deleted.