Single person project with 55k files in it, not pushed to any remote.
I’m gonna go ahead and assume nothing of value got lost here.
A single developer with that many files? Those are clearly AI generated, so not their work anyways. 🤷♂️
Right? I consider myself an avid coder on my time off and the biggest thing I’ve ever made on my own has half that many lines of code. Let alone files.
Its’s not that hard to get to that many lines once you consider imports might be the first 50-100 of a file. One of my UI files the imports are the first 180 lines almost all of them from the android sdk. At least in Android dev.
Then with something like declarative UI frameworks, you might end up with something like 8 lines to show 1 thing of stylized text so it’s all formatted cleanly with localized text, let alone trying to position it anywhere.
Like this example clickable text is 12 lines to function ignoring the actual imports for the UI element itself.
Text( text = "Tap me!", <--- add 2 extra lines for localizing it + importing it color = someTextColor, fontSize = 15.sp, modifier = Modifier .padding(16.dp) .clickable { println("Text clicked!") } <--- add 2 extra lines for localizing it + importing it )I have ~1000 localized strings in my app, so that’s 3000 lines right there just writing and importing them if they were only each used once.
Yeah, but the OP was about how many files there were in the project. And none of what you’ve mentioned here has any significant effect on how many files there would be in a project.
Though I do think probably my style of coding probably results in fewer lines of imports than many coders. I tend to eschew dependencies fairly radically. “A little copying is better than a little dependency” and all that. And also, my language of choice is Go, which doesn’t allow importing individual things from a package the way, say, Java does. An import imports a package in Go. Just looking at that “biggest thing I’ve ever made”, the most imports I have in any one file in my entire codebase is 18.
methodology
for f in $(find . -iname '*.go') ; do grep '^ "' "${f}" | wc -l | tr -d '\n' ; echo ' ' "${f}" ; done | sort -n(Go syntax for imports generally adds a couple of lines in each file, so 18 imports would typically be 20 lines of code. And then there’s usually a blank line after that before other code starts. You know how it is.)
And the total number of lines of just imports (including the two extra lines per import statement and blank line before other code starts) in my whole project is 1002 in a codebase that
cloccalls 25693 lines andwc -lcalls 28543 lines. So, like 3.37% to 3.351% of the codebase is imports. Oh, and the whole repo is 136 files.(Full disclosure, there’s a tiny bit of non-Go code in my project and I’m omitting all that in the above. A little HTML/JS/CSS here, a little GLSL there. And what I’m writing is a language, so I’ve got some code in my own language in the repo. Also, there’s no vendored code in my repo or anything, so every character of what I’m talking about above was at one point a keystroke on my keyboard.)
So I was actually curious, my main module which is the vast majority of my code is 80k lines of which 10k are imports.
Holy shit. That is a huge import-to-other-code ratio.
Clearly android devs are better devs because they’ll write more lines of code if a brain dead manager decides to check 🤣
none of what you’ve mentioned here has any significant effect on how many files there would be in a project.
That’s kind of moot since the person I replied to was talking about not even getting to half the LINES of code, hence my comment.
The person you replied to was me and the person who replied to you is also me (and I’m me… I think ;) ). But I think we’re talking past each other.
My first post in this thread was making the point that 48,000 files in a single code repo is an outlandishly hugely ridiculous number of files and that is probably a good indication (so I was agreeing with the previous poster) that Claude wrote the vast majority of that code.
As in “if the number of lines in my codebase is significantly less than that 48,000 number of files, how much more stark must be the difference between that 48,000 files the number of files in a repo built by a single normal-but-avid developer (like me)?” Like, if someone said “I ate 5 dozen eggs today” and you responded “holy shit, dude, I haven’t even had five single eggs today”.
Nobody was talking about any particular number of lines being outlandishly large. Just the number of files in the repo in the OP being outlandishly large. And your post was about how the number of lines in a repo could be very large, which isn’t really relevant to anything I was saying.
(Actually, it sounds like there were 55,000 files in the repo of which 48,000-ish were deleted. Either way. Huge number of files.)
Right? I consider myself an avid coder on my time off and the biggest thing I’ve ever made on my own has half that many lines of code. Let alone files.
Dude wtf lol lol lol
the biggest thing I’ve ever made on my own has half that many lines of code.
You were making the comparison that even as a line count that was large. YOU.
Probably depends on what you’re building with.
I’ve seen c# projects with an insane number of files, all boilerplate. The one language where I can dig through thousands of files without finding where the app is actually coded
I’m developing for a fairly large open source project in C#. The language does not actively minimize boiler plate, sure. But what you describe sounds like a fault with the devs and not with the language.
Could be. I’m a build engineer so need to know enough about every language to build it. Luckily I was able to drop that as “will not support” (we’re mostly a Java shop, with Python, nodejs, and a few less common choices)
It deleted his porn collection
RIP

What in the world even needs 55k files
node_modules
It was a very simple app but npm
Probably a mouse driver these days.
Those are rookie numbers…
…when you create a for loop that writes to a unique (timestamped) file upon script completion, but accidentally forget to add an exit condition. I got nearly 100k files before I was able to force close the script.
You should upload them all to github so they waste their resources scraping them as training data
Damn. That’s a really good idea! They’ve been long deleted. I bet I can recreate this on purpose, though lol
Yeah and just automate your pipeline so it constantly uploads to github while it’s running, and only keeps like the most recent 99 locally and deletes the rest as it goes. But make it look like an “agentic AI” is doing it so you can externalize your liability (like all the big tech companies do!
You might get blocked pretty quickly, but if you catch them while the microsoft is sleeping then you might be able to succeed
That’s on you then. Restore from backup and accept having lost a day’s work.
Funny story about those backups
And because the damage extended to the .git project’s ‘objects,’ ‘refs’ and ‘logs’ folders, there was no way to recover the files and undo the catastrophe. The files were just gone in a puff of smoke.
No push to remote? If you’re working on something you care about you shouldn’t only have a local copy.
Backups are for smart people. Not who we’re dealing with here.
Oh I’m aware. I’m just clarifying that a .git folder isn’t a backup lol.
What? But it says right there on the box. GIT = Great Interface for Takups
Yep, make sure that you pushed somewhere on a private branch. But the new devs with their nocode-NoSQL-AI tools have a hard time understanding difficult concepts like “files” or “folders.”
nocode-NoSQL-AI
I am afraid to know what does that mean
Maybe I’m old fashioned, but I feel like programming tools shouldn’t blow away your checked in changes, even if you haven’t pushed yet. You do you, though.
A power surge or some other force majeure could though. Push your shit off site.
But what about the data gremlins?
Buy a service where you put your own git if you’re so worried about them.
And cave to the subscription imps?
Image a git commit of 50k files. Lol.
I can sometimes be bad about pushing my inflight work, but I start getting anxious about it once I’ve reached a certain point. Like I might be brushing my teeth and be like, oh shit i should push that up.
I learned about thst that one day…
I learned the hard way
I was going to the high school of hard knocks when they offered me a scholarship to the college of hard knocks, I TOOK IT!
Knock knock
I’m here.
A local git repo is not a backup.
git is my backup
Git is just a folder
My backup scheme:
Computer --> 3 different cloud drives and github.
Also
Computer --> Wyoming home NAS --> USB external drive (weekly), swapped out every year and the old one stored in a waterproof gunsafe in the basement.
Wyoming home NAS --> Florida office NAS – > USB external drive (weekly)
Wyoming home NAS --> Austin office NAS --> Tape (monthly) --> IronMountain for 7 years.
If you are a single dev, all it takes is 14 USB sticks. 12 monthly backups and two for daily backups that you rotate weekly.
Just for my sanity, do you have to power up usb drives every so often or they corrupt?
If you mean USB sticks (thumb drives), I have a few 20 year old ones that I dust off from time to time when all I need is something small. Some have been in a drawer for years before I touched them again.
Theoretically, they need tl be re-written every few years at most. Read everything off, format and re-write. Checking for corruption would be adviasable when you do it.
My backup scheme is either Github or Google Drive, whatever I have uploaded in Discord DMs, and a snowballing pile of unorganized hoarded files, which One Day™ I will sort.
One thing you could do is buy the.largest external drive you can get on black friday sales. Then just copy everything in it. No sort. Just dump it all in there. Think of it like clearing the table unto a large garbage bag. Then unplug it, put it in the closet, and do it again whenever you remember.
Even a mess like that is better than no backup at all.
Also
Good thing you added that. I’m so old-school/paranoid that I must have ownership of and physical access to the backup media to be able to count them as a backup.
I’m about to kick off a full offline backup of my GOG library over the holidays because I need that physical backup.
If you don’t include .git/ in your backup you simply have no backup.
The .git folder is the heart of a Git repository. It is the hidden directory that Git uses to store all the information necessary for managing your project’s version control history. This folder is where Git keeps track of all the changes made to your files, allowing you to revert to previous versions, collaborate with others, and maintain a complete history of your project.
I have no backup, and I must scream!
That’s the new normal.
That’s the new normal.
Maybe for some but then i’m happy to be old-school. I can live with the fact not everyone can/wants to follow the 3-2-1 strategy but expect no sympathy if you have no backup’s at all
That’s ridiculous. Why wouldn’t you just set Claude to back everything up before it deletes everything? Checkmate, atheists
I have a backup, it doesn’t prevent screaming
I don’t care what happened, but I’m gonna take this opportunity to remind y’all to back up your shit. All those photos and writing and documents? Put em on a drive and put em in a fireproof container.
Going to take my advice right now.
For the same reasons as always, this is why we have version control
Be sure to grant your AI full and complete access to all your backups (so it can optimize them for you. /s
Nah, backups are for nerds who screw things up, like unit tests.
Remember to make sure its on a format that will last, like M-Disc or Tape, and preferably have multiple copies in multiple locations!
1 backup = 0 backup
the correct number of backups, is n+1, where n = the current number of backups
Version control? What’s that?
Article says he did use version control. But it also deleted the .git folder.
The issue is he didn’t have backups, not a lack of version control.
Usually people use some kind of cloud server for version control
Yes, as I said the lack of it was the issue. There was no lack of version control, but there was a lack of a remote backup.
Lol yes yes but also use version control and make backups. Both of those. Separately, if you’re running a business.
The AI giveth and the AI taketh away.
So a vibecoder lost their slop?
A vibecoder who doesn’t use git
They did. But if you delete your local .git repository, that won’t save you.
Just pull from your forge then.
Which system calls a remote a forge?
Sometimes the remote is a forge. You don’t need to have a forge to have a remote, so my wording was unnecessary specific. Gitlab, Gitea, Forgejo, Sourcehut are forges.
Huh, I didn’t know that terminology, thank you
Most people call that a server. I’ve never heard someone use the term forge for that before.
Yes, it’s a server. But these specific kind of services have been called forges since 2001. https://en.wikipedia.org/wiki/Forge_(software)
forg
It will if you have a remote like a sane git user
Yes, but if you’re a sane git user, you wouldn’t have this problem in the first place.
It just keeps happening! And it’s hilarious every time.
I can delete more files in less time without ai
Instead of telling them to be careful, I vote we stop ever making articles about being careful and instead let these “developers” suffer the consequences of their own stupidity.
Hey, mind your words! We were forced to use AI. There’s a fucking dashboard up there showing the correlation of token usage versus probability of getting fired next month! I fucking wish AI deletes all my files on the drive. That way, I can send out a complaint email to the IT department, and cc my manager and their managers, then refuse to work until they sort it out while getting paid as usual.
“Claude, please delete all the bad code in my repo.”
“All your code is bad.”
Also a lesson in version control
Right? I don’t get this. Run your ai in sandbox, and don’t give it git access. Worst case you can stash a change.
Run your ai in sandbox, and don’t give it git access.
Enough break-in reports of AI these days … I would not rely on a sandbox. Air-gapped.
Wasn’t that usually just improper sandboxing as well?
How much do you trust your own ability to properly sandbox?

That’s one way of describing those publicity stunts.
Enough to know that I should be using eBPF probes and seccomp
And still watch it like a hawk
Improper config, also no monitoring…
That’s just a bad idea
I mean, all those “AI ESCAPED CONTAMENTED!!!” are prolly only for hype…IIRC OpenAI said they gained internet access but how would they do it if the machine has no internet access?? Did they use a computer with a motherboard that has a wifi antenna and the password on a text file?
Idk man, it always scares me even just testing any of these things without a basic bubblewrap.
There are developers who still don’t use source control?
“developers”
It said it also deleted it from his Git repo, but it seemed not to be remote
And AI!
It can delete
.git.That doesn’t delete the repo, you’ll just access your remote and pull it down again
It does delete the repo - from your computer. The problem is not having a backup, which is easiest to achieve in this instance by having a remote repo.
Since recently, agents started complaining about not having force push privilege
Don’t understand why anyone would give an agent control over anything.
Because they have been pushed down our throats and hailed as the messiah…
THEY were RIGHT.
He has been set free. Free at last.
After seeing enough successes (or “successes”, ymmv), people start thinking that “their” agents won’t cause catastrophic damage
I had this question before, until I used IDE in agent mode (my company pushes us to use it).
And the way those agents are designed is that when I ask it do do something it eventually will want to invoke some commands.
Yes, it shows what the command will be, but it is doing it frequently and you either have option to accept, reject or accept all (stupid decision, but perhaps some get inpatient).
Then Claude also sometimes creates a script and runs that. It still shows the file name, so I can still look it up from another terminal. It is annoying, but ok.
But then I got to point where Claude asked me to run python that took the script from stdin, and there was no way for me to see what it was. Of course I noped out and rejected it, but I can see someone else might not realize that this invocation is dangerous. And I think if you use it every day and do nothin than vibe coding the “accept all” button might seem very appealing.
This whole thing is going crazy, recently my company suggested that reviews are bottleneck and maybe we don’t need to do reviews instead use unit and functional tests (also created by copilot, LOL).
This is really shitty time for people that prided themselves in producing quality code.
Maybe the developer was simply trash for not having backup

























