this post was submitted on 20 Nov 2024
876 points (97.6% liked)
Programmer Humor
19630 readers
1217 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The reactions here are why people don't join forums, don't ask questions, or choose to learn alone. "duh, I knew that". Yes, the dude didn't, which is exactly why he's frustrated. I think too many have forgotten what it's like to be a beginner and make a fatal mistake, which would explain the mocking responses here and things like recommending new linux users Arch.
Anti Commercial-AI license
I understand the impulse to be empathetic and kind. But it's very hard to respond in good faith to someone who just made a post where more than half the words are "fuck you".
A feature that permanently deletes 5000 files with one click without warning deserves a fuck you.
It had a reasonably clear warning, though; a screenshot is included in this response from the devs. But note that the response also links to another issue where some bikeshedding on the warning occurred and the warning was ultimately improved.
I disagree that that warning is reasonably clear. Even the comment that included it has the line of thought, where the user, not knowing what terms git uses thinks that they just did an action that is going to change each of their files. It makes sense that they'd want to discard those changes. That user then goes on with some snark about not wanting to learn any more about what they are playing with and that other programs would do the same, but "discard changes" seems like it would have a clear meaning to someone who doesn't know git.
The warning says it isn't undoable but also doesn't clarify that the files themselves are the changes. Should probably have a special case for if someone hits discard changes on a brand new repository with no files ever checked in and hits discard on a large number of files instead of checking them in. Even a "(This deletes all of the local files!)" would make it clear enough to say what the warning is really about.
Well, yeah, that's why the linked ticket led to a massive improvement:
That's way better. His sacrifice benefited others in the end.
(I haven't checked what the warning says today.)
Even if you know git, you wouldn't assume that "discard all changes" affects untracked files. It's bad design all around
That depends on what you map "discard" to in your mental model. Whoever designed the VSCode feature chose to associate it with reset+clean, rather than just reset. Presumably that's why they called the menu option "discard" rather than "reset". (But I agree that this is a surprising choice, and that they managed to make an already-famously-bad UX even worse.)
My git gui has a tick box on that prompt to specifically include added files. I now see why haha
OK this is hilarious
"Discard changes" is usually equivalent to "cancel" or "quit without saving". Not shift+delete files lol.
Well, yeah, that's why they updated the warning pop-up. It's still the case that the user didn't bother to find out what the warning meant before choosing the inherently destructive option.
Here's the revised pop-up, according to the linked ticket:
I haven't checked the current behavior (this whole incident was seven years ago).
If you have no idea what Git is, that warning message is not telling you you’re about to delete 5000 files.
But I wonder if this person maybe does know about Git because they used the word „stage“.
If you don't know what git is, you should probably avoid choosing the "confirm" option when you're warned that an operation is dangerous.
That said, I think the change they ultimately made in the linked issue, which words the warning differently and, more importantly, provides an option to only discard changes to already-tracked files, is a vast improvement.
There is a difference between someone who is new and experiences something like their IDE deletes a file that was unexpected and asking a question about why it did that.
Then there are arrogant assholes who believe their shit doesn't stink and that they couldn't have done anything wrong and it was the IDE's fault for not knowing what they wanted to do versus what they commanded it to do.
The OP is the latter.
I mean, not entirely, and he says he lost months worth of work. Like imagine you know nothing of git:
Click buttons in the IDE to add source control.
IDE says a bunch of files have been changed.
But I don't want to make changes to the files, I want to source control them.
Attempt to undo the changes. Click "discard changes" thinking it will put them back to how they were before clicking add source control. Get a warning dialog that this is not undoable, but that's fine because I don't want whatever changes it made to my files anyway.
All files are deleted and unrecoverable.
Like that experience sucks balls and it's reasonable that a person wouldn't expect "discard" == "delete". Also, from reading the GitHub thread, apparently at that time VSCode was doing a
git clean
when you clicked this. Which like...yeah why the hell would it do that lol? I don't think I have ever usedgit clean
in my entire career.Months worth of work. Going an entire day without committing should never happen. Also, rawdogging it without a backup?
Nope, dude learned a hard lesson. No sympathy. He thought that the rules of data storage don't apply to him and he got boned.
He did learn a hard lesson, but it sounds like this was exactly what he was attempting to rectify. "This project is pretty important to me. I should probably figure out how to use source control and put it on GitHub" but then by doing so, and due to some arguably poor UX decisions in VSC, destroyed the project.
If someone's trying to learn how to do something you can't just be like "well you should've already known how", you know what I mean?
Well actually, let's qualify that: there are cases where people try to jump right in the deep end. "I'm just learning woodworking! Step 1: build a new deck for my house", like yeah bro what are you doing, let's start with a birdfeeder or something.
But that's not what happened here. He tried to use the built-in GUI, which many would assume would be easier to learn than jumping right to the CLI, and it burned him in a way he didn't even realize was possible.
He's right, his shit doesn't stink. His decision making was reasonable for a new programmer.