this post was submitted on 21 Mar 2025
692 points (98.7% liked)

Programmer Humor

21772 readers
2158 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

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] dan@upvote.au 123 points 1 day ago (8 children)

Before Git, we used SVN (Subversion), and CVS before that. Microsoft shops used TFS or whatever it's called now (or was called in the past)

[–] i_stole_ur_taco@lemmy.ca 54 points 1 day ago (4 children)

Wasn’t it Visual SourceSafe or something like that?

God, what a revolution it was when subversion came along and we didn’t have to take turns checking out a file to have exclusive write access.

[–] mercano@lemmy.world 44 points 1 day ago (2 children)

The worst was when someone left for vacation without releasing their file locks.

[–] HarkMahlberg@kbin.earth 21 points 1 day ago

Vacation is a quaint problem lol, at least you know they're eventually coming back. What do we do about the guy who retired 5 years ago and still has locked files in his name?

[–] roofuskit@lemmy.world 5 points 1 day ago (1 children)
[–] Aurenkin@sh.itjust.works 1 points 22 hours ago

Is it possible to learn this power?

[–] dan@upvote.au 21 points 1 day ago* (last edited 1 day ago) (2 children)

Visual SourceSafe

Yes! That's the one I was struggling to remember the name of. My previous employer started on Visual SourceSafe in the 90s and migrated to Team Foundation Server (TFS) in the 2000s. There were still remnants of SourceSafe when I worked there (2010 to 2013).

I remember TFS had locks for binary files. There was one time we had to figure out how to remove locks held by an ex-employee - they were doing a big branch merge when they left the company, and left all the files locked. It didn't automatically drop the locks when their account was deleted.

They had a bunch of VB6 COM components last modified in 1999 that I'm 80% sure are still in prod today. It was still working and Microsoft were still supporting VB6 and Classic ASP, so there wasn't a big rush to rewrite it.

[–] HarkMahlberg@kbin.earth 6 points 1 day ago (1 children)

Welcome to my world... our new lead architect has mandated that we move everything from TFS to GitLab before the end of the year. I hope it comes true.

[–] Flames5123@sh.itjust.works 2 points 17 hours ago

At the start of COVID, I migrated our three projects to git from VSS. I also wrote a doc for our other teams to do the same. It was amazing once we got it working. Small team of 3, but we started using feature branches which enabled us to easily merge everything into a testing branch and release only certain features at a time. So much cleaner.

Before I left, I almost got semi automatic CI/CD working with Jenkins!

[–] heavydust@sh.itjust.works 3 points 1 day ago (1 children)

That or when SourceSafe was literally deleting random files because it was full of bugs.

[–] nogooduser@lemmy.world 2 points 1 day ago

I remember when our company split up and we had to give them the source code of some older versions that they still used. We couldn’t do that because the repo was corrupt meaning that we couldn’t access some older revisions. We had no problems using it day to day so nobody noticed which meant that all backups were also corrupted.

[–] Ledivin@lemmy.world 18 points 1 day ago

Oh god, thanks for that fucking PTSD bomb

[–] HarkMahlberg@kbin.earth 8 points 1 day ago (1 children)

Yeah VSS was the predecessor to TFS, and now TFS is called Azure DevOps... whatever the fuck that means, Microsoft needs to get it together with product naming. Anyway TFS sucks major rotten ass. I have my problems with git - namely user friendliness - but TortoiseGit has put all those troubles to rest.

Nothing like that can fix TFS.

[–] Pieisawesome@lemmy.dbzer0.com 4 points 1 day ago (1 children)

I started at a company that uses ADO (migrating to GitHub this year) and it took me like 20 minutes to figure out how to change repositories in the UI… idk how they built something that unuser friendly

[–] HarkMahlberg@kbin.earth 5 points 1 day ago

I could go all day with my grievances... For some fucking reason, Team Foundation Server thought it would be a good idea to model their source control on folders and files rather than atomic nodes of changes like git.

I'm sure someone thought this was intuitive, but it falls apart once you realize you can check in cross-branch or even cross-project files into a single changeset. This allows you to easily pollute projects you're working on but didn't intend to modify yet, if you forgot to exclude their files. And then, when your code reviewer checks the history of the project folder you modified, they don't even notice all the files you changed that WEREN'T in that folder but were part of the same changeset. So you pass your review, and all the sudden there's unwanted, unnoticed, and untested changes in some other project, with a nice code review stamp on them!

And the entire checkout/checkin system is just flipping the read-only flag on the files in file explorer. It's the most amateurish shit. If you edit a file in an open, active project, the file gets checked out automatically. But if you're editing loose scripts that aren't part of a bespoke SLN or CSPROJ, you have to check those out manually... which it will only tell you to do once you try to save the file.

And then Visual Studio cannot understand that I might need to switch regularly between 2 types of version control systems. If you're not on the same VCS plugin when you want to open a recent project on it, it doesn't automatically switch it for you, it just refuses to load the project. The only way to reliably to switch is by going into the options menu, changing it there, THEN loading the project.

git is practically made of grease compared to how stuttery and clunky TFS is. I'll shed no tears for the fossils who are having a hard time learning git, they will be better off whether they realize it or not.

[–] jjjalljs@ttrpg.network 14 points 1 day ago

I thought mercurial was older than git, but apparently it's 12 days younger.

[–] VivianRixia@piefed.social 11 points 1 day ago (2 children)

And throughout it all was the tried and true v3.0-final-UPDATED-4

[–] driving_crooner@lemmy.eco.br 7 points 1 day ago

The best is when the version also had the name of an ex employee on it.

[–] tiredofsametab@fedia.io 5 points 1 day ago (1 children)

if it doesn't have both _draft and _final in the name and at least one (1) in it, are you even really versioning?

[–] The_Decryptor@aussie.zone 9 points 1 day ago

A place I worked at did it by duplicating and modifying a function, then commenting out the existing one. The dev would leave their name and date each time, because they never deleted the old commented out functions of course, history is important.

They'd also copy the source tree around on burnt CDs, so good luck finding out who had the latest copy at any one point (Hint: It was always the lead dev, because they wouldn't share their code, so "merging to main" involved giving them a copy of your source tree on a burnt disk)

[–] GhostlyPixel@lemmy.world 8 points 1 day ago (2 children)

My first SWE job out of college in 2019 they were still using SVN because none of the seniors could be bothered to learn how to use git.

The “well this is how we’ve always done it” attitude had a death grip on that place

[–] dan@upvote.au 7 points 1 day ago* (last edited 1 day ago) (1 children)

For what it's worth, SVN is a much simpler object model compared to Git, which makes it easier to understand.

It's centralized rather than distributed like Git is, which has some disadvantages. Most operations require access to the server, as opposed to Git where you usually have a copy of the entire repo and can work offline. Git users can clone the repo from other users rather than relying on a centralized server.

On the other hand, a centralized server also simplifies some things. For example, instead of commit hashes, SVN has revision numbers, which are natural numbers that start at 1 and are incremented for every commit. A lot of software that used SVN used to use the revision number as part of the version or build number.

Git is definitely the source control system to choose today, but SVN can still have its place.

[–] roflo1@feddit.nl 2 points 17 hours ago

For those reasons, I choose mercurial over git whenever I can.

[–] NigelFrobisher@aussie.zone 5 points 1 day ago

SVN is fine for most corporate workflows. Your project is probably not anything like Linux.

[–] hamid@vegantheoryclub.org 5 points 1 day ago (1 children)

TFS actually moved its core version control to Git in 2013 and was later was rebranded as Azure DevOps a few years ago

[–] JakenVeina@lemm.ee 3 points 1 day ago

Thank god, we STILL use TFS at work, and its core version control model is reeeeeally fucking awful.

[–] veroxii@aussie.zone 5 points 1 day ago (1 children)

20+ years on and I still have some unresolved Clearcase trauma.

[–] baines@lemmy.cafe 1 points 1 day ago

eh heheh we still use clearcae hehe … heh

[–] ByteJunk@lemmy.world 4 points 1 day ago* (last edited 1 day ago)

Oh yeah, I remember using tortoiseCVS briefly.

Mercurial and Bazaar also showed up at around the same time as git, I think all spurred by BitKeeper ending their free licenses for Linux kernel devs.

An interesting shot to the foot, that one.

BitKeeper was a proprietary version control system that somehow (and with a lot of controversy) ended up being adopted by a big chunk of the Linux kernel developers, while others were adamant against it.

In any case, they provided free licenses to Linux devs, with some feature restrictions (including not being able to see full version history) only available for premium clients, while Devs who worked on open source competing systems were even barred from buying a licence.

When someone started to work on a client that allowed access to these locked away features, they revoked the free licenses, and a host of solutions started being developed immediately. Linus Thorvalds himself started work on git, and that eventually got adopted by the whole Linux ecosystem and, nowadays, the world.

As for BitKeeper, it's been dead for years now.