Fuck all victim-blamers. “Discard” is not how you label a button that permanently erases anything.
While I have some sympathy for anyone who loses months of work, as an IT administrator by day, all I have to say about their lack of backups, and lack of RTFM before messing with shit is:
HAHAHAHAHAHAHA HAHAHAHAHA. you got what you deserved fucker. GL.YF.
Man I get paranoid about synchronization programs for this very reason. There’s usually some turnkey easy-mode enabled as soon as you first launch that’s like:
“Hey you wanna back up your entire NAS to your phone?! That’ll be fun, right?!”
And you’re like “…No.”
And then it wants to obliterate everything so it’s all “synchronized”, often it’s not easy to find a “No, stop, don’t do anything at all until I configure this.” Option.
iTunes was SO BAD about this.
Syncthing is the least-bad sync software I’ve ever run. It’s got some footguns but it’s still brilliant.
I would imagine there’s still ways to back up version controlled software right?
Reminds me of a hilarious bug in early GHC: https://gitlab.haskell.org/ghc/ghc/-/issues/163
The compiler will delete your source file if there’s any compile error. And the user complained only by sending a very polite email to report this bug. Simon Peyton Jones mentioned it in one of his talks and I still find it quite hilarious till this day.
I’m sure that the “three months of work” was completely shit code. Anybody who is unfamiliar with source control (or even backups!) is prone to making stupid mistakes. Republican voters are likely to have a similar experience over the next 4 years.
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
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
Broken stair apologism.
“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.
I just tried right now to get the exact message.
Are you sure you want to DELETE foo?
This is IRREVERSIBLE!
This file will be FOREVER LOST if you proceed.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”.
Man who clicks confirmation for leopards to delete his work is angry and surprised when his work is deleted.
Why are they messing with the source control options when they’re not using source control? Perhaps learn about stuff before you start clicking buttons and performing delete operations on your super critical files?
PEBKAC
I always found Git GUIs, especially the ones built into IDEs, to be more confusing and clunkier than working with Git on a terminal. It often feels like unlearning what one knows about Git, and relearning it the way that specific GUI demands.
Heck, I am going through the aforementioned feeling as I force myself to use Magit on Emacs. It just does not feel intuitive. But I will not give up until I have made an honest and full attempt.
The only sensible Git GUI I ever used is Sublime Merge[0], after a coworker praised it immensely. Even that is reserved for the rarest of the rare times when the changes in the workspace gets unwieldy and unruly. For every other instance: Git CLI on a terminal.
[0] https://www.sublimemerge.com/
E: typo, and link to mentioned GUI.
JetBrains has really nice Git integration. Interactive rebaseses and merges are quite pleasant but I’m still dipping into the command line to do stuff occasionally. Most commonly a
git reset HEAD~
cause I want to split a commit though I had to dig through the reflog the other day cause I suddenly realized I lost an important branch that ended up being over a hundred commits back.How do you view diffs and merges when you say you don’t use git GUIs? External tool or terminal/command line?
I use Jetbrains IDEs and most of my life has been IDE based git interaction. And I honestly love it, easy access to see my diffs, the most common commit, push and stage(or shelve as Jetbrains does it, which is better than visual studio). Hassle free and available beats writing anything to me.
How do you view diffs and merges when you say you don’t use git GUIs? External tool or terminal/command line?
Terminal.
I use Jetbrains IDEs and most of my life has been IDE based git interaction. And I honestly love it, easy access to see my diffs, the most common commit, push and stage(or shelve as Jetbrains does it, which is better than visual studio). Hassle free and available beats writing anything to me.
Perhaps, it is a mix of learned behaviour and cognitive fixation, as I started out my development journey predominantly using a terminal, that I cannot fathom Git GUI being hassle free.
Nice to read a different perspective on such a fundamental thing that I take for granted while working. Thank you for sharing it.
So VS Code isn’t just slow and bloated, it also deletes your files. So glad I was turned off by its excessive memory consumption and deleted it before it deleted my files.
Edit: also why I only ever used git from the command line, I never found a git UI that is easy to understand, and never trusted them.
It’s really not slow or bloated. There’s a reason it’s so popular (even in Linux)
If it’s running slow, maybe it’s time to check your computer…
I literally had to use it to load 100 git projects simultaneously recently
That has the same energy as complaining that a file manager has “Delete” in the context menu.
except that the “delete” in file managers is actually “trash” and that’s for precisely this reason. Anyone not using the trash bin for a GUI that is capable of deleting files is either incompetent or malicious.
frankly
rm
should default to using the trash bin as well, for desktop-focused distros.I clicked delete and then clicked confirm when it asked me if I’m sure I want to delete, and all my files disappeared! What the fuck?!? Fuck this fucking operating system!!!1!!1one!!!
Did you even read the thread?
CANNOT EVEN FIND THEM IN THE RECYCLE BIN!!!
Yes, that’s what it means when it says “files will be permanently deleted, this is not reversible.”
https://github.com/microsoft/vscode/issues/32405#issuecomment-322155856
Also, check the linked issue to see the bug and UX problems. Particularly the first comment and this one: https://github.com/microsoft/vscode/issues/32459#issuecomment-322160461
I have a difficult time believing this was their fault. It is (was) bad UX.
Have you actually used VS Code, or are you just doing a bunch of research to disagree with a stranger on the internet?
I’m not doing “a bunch of research”, I just read the thread and the linked issue and I’m annoyed by people’s condescending comments about something it seems like they didn’t actually read. We shouldn’t shit on people for things we believe they did wrong, especially when, if you read the linked issue, it wasn’t their fault.
I use VS Codium (basically Code), but I don’t use it’s git integration other than maybe the occasional merge conflict resolution.
If the user didn’t read that, that’s on them. They used a feature they didn’t understand, which is part of a version control system that they also didn’t understand, and didn’t bother reading anything. If you still think they bear no responsibility for their actions then we’ll just have to agree to disagree.
Since they don’t actually have a git project tied to their files, “all changes” means “files created”. If they did have git configured then it would mean “changes since the last commit”, and it wouldn’t delete the files.
Edit: I will concede that it’s probably not immediately apparent to someone not familiar with the system that uncommitted files will be deleted if you use the revert button. But that comes back to understanding things before you go around clicking buttons that say the action is irreversible. At a minimum, they bear responsibility for not knowing what they were doing, and still charging ahead full steam.
“Microsoft Please Fix” ifadesi, genellikle kullanıcıların Microsoft ürünlerinde yaşadıkları sorunlara veya hata bildirimlerine yönelik bir çağrıdır. Tostçu Mahmut Menu
VSCodium better
5000 files
0 backups
Someone’s got their priorities mixed up.
And they were trying to correct their priorities by looking into the source control features, so I don’t see how that’s anything other than victim blaming for them not doing it sooner.
I would argue that it’s common sense to at least make a point in time copy, to… IDK, a USB drive? Before trying to implement a new source/control system.
Just plug in an external drive, or a thumb drive, copy/paste, unplug it, then proceed with testing.
I don’t see how anyone who values their time and effort could do any less.
As for the files, undelete is a thing, and it shouldn’t be hard to do.
having 5000 backups of 0 files is also kinda pointless.
Yeah, those are novice numbers. I have infinite backups of my 0 files!
You have to lose it all to know what matters (speaking from experience 😭)
I once lost three hours of work early on during my learning, not much that I lost but it was a moment when I learnt a lesson. Never lost work after that ever.