- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Can I be frist to say this doesn't sound at all unusual or unbelievable.
Dumb and unworkable, but I've seen plenty of teams trying to run version control bass ackwards like this .. although it's usually because there's some Awkward Old Bob on the team who refuses to change the way he works and the whole process has been borqed around him.
Admin
"To be fair, this project was mostly meant as a training exercise, something low priority and safe for {s]interns[/s] Benjamin to cut [s]their[/s] his teeth on."
FTFY
Admin
Ahhh. I remember when version control was .. Copy source from floppy to paper tape, put date and time on paper tape. Place in file cabinet.... (I hear the early 70's calling me back)
Admin
I believe that story. I've worked at places were the entire "source control" was to copy & paste your project onto the network drive. If you made a change and a colleague was working on the same project and you didn't know that the other was working on the same project, you'd simply overwrite the changes the other made.
After a few months of pestering the team lead, we finally got github installed. It made everything so much better. The only problem then was to convice our "Awkward Old Bob" to please please please keep the code that is running in production in the master branch, with little success. But at least he checked in his code regularly.
Admin
It's not that surprising a story to those of us with experience going back decades. Back when we used Visual Source Safe our practice was somewhat like this - and VSS checked out files so that when someone went on holiday you had to get the admin to force release the file locks. Works/Builds On My Machine was a common issue. Fast forwards to the Subversion days we were doing away with the file locks but still mostly checking into Master from local copies. Even working with Git I've had various places that would merge direct to master, letting the developers pick which changes to keep, and if branches were used generally doing a squash merge so it's hard to pick out the merge conflict resolutions from the intended changes if something went wrong. Some places do have a sensible (e.g. Gitflow-style) branching and pull request strategy, but it's far from universal and not something that most CS students are even taught about.
Admin
There was a story on here once, I believe, where instead of using version control to control actual versions they were somehow using it like a file structure. Each file had its own commit and to change that file you amended that commit and force pushed, or some such insanity. I'm pretty sure this is less wrong.
Admin
TRWTF is that the guy has been promoted.
Admin
Worst version control system ever? You ain't seen nothing yet.
Now let me save my file on USB-key, and store it in the "version control locker." One key for each piece of equipment. Except for Olde Bob, who keeps his bits on his local machine. Or overwrites his changes on the wrong key. One filename is so much easier to remember. (And that one time when one of the keys went missing, of course) Oh, let's not forget we can store backups on the same USB - when something breaks, we simply load a previous version. You'll just have to know which one to pick before editing a running machine in production. If you're lucky, off- and online will be not too far out. It's in the source, Luke. Just upload the program from the PLC. Who needs matching symbols anyway?
Apologies. Bangs head on keyboard and cries.
Admin
True story.
Me: Here is the master copy of the code on this 5 1/4 floppy disk. Boss: Ok, I'll go put it in the Important File Cabinet. (5 minutes pass) Boss: I dropped it and stepped on it. Me: It's probably okay... Boss: It fell out of the envelope before I stepped on it. Me: I kept an emergency copy in my desk. Let me get you a new "master" copy.
Admin
And, thus, the interns learned the value of project managers.
Admin
And the interns learned some practices around minimizing the contributions of women that could earn them reprimands (or worse) in other companies.
Admin
Back in the late 1980s Wang Corporation (of early word processor fame) was working on an OS with hopes of getting into the general purpose computer business.
Their top management (guy named Freddy Wang, as I recall) believed that LANs were a passing fad. I suppose they could be forgiven for that, because those were the days that Ethernet was implemented a big fat coax cable, and you added an interface to it by drilling a hole at one of the stripes on the cable.
But, when preparing for a major source-code integration job, somebody was carrying a hard drive (heavy in those days), tripped, and dropped it. And, that was that.
Moral of the story? Make sure the laces are tied on your sneakernet.
Admin
You must have had a stonking set of paper tape and 10" (was that the right dimension?) floppies back in the '70s.
My recollection of "source control" back in the '70s (and, remember, this was basically before even the reviled RCS) is based upon using the PDP11 at the local hospital. It was state of the art at the time.
It even had "source control." Save file foo.txt, it renamed the original foo.txt to foo.txt.1 and replaced the original file. And so on up to the magical revision number of three. After which I can't remember what, but I presume the three backups rolled around. Synchronisation between versioning? Who would want that?
It was actually tremendously useful.
I then moved on to the local subsidiary of a multinational mining company (still at the end of the 1970s). Version control consisted of, um, duplicating the punched cards and inserting the ones that changed. Sophisticated version control depended upon columns 73-80, wherein you entered the sequence number. So you only had to save the sequence numbers that changed. I'm sure you can see the flaws in this ...
Kids these days. Get off my lawn!
Admin
Oh, and pursuant to that? I've got an even better interview WTF than yesterday's.
I went to an interview in a local company that dealt exclusively in Basic. (Not visual basic. Dartmouth Basic.)
Their first question was "How would you implement Basic in a way that supports modules?"
(Guess my answer. But my answer was irrelevant.)
Apparently the "correct" answer was to leave huge gaps in the numbering system (for youngsters, we used to start at 10 and increment by 10). So you'd start with 10-990, 2000-2990, 3000-3990, etc. And then you'd, well, I can't quite remember whether the apposite verb was interpolate or frobulate, although I suspect the latter.
I don't miss those times, although the pay rate for pretending you knew what the idiots meant was fabulous.
Admin
The real problem is with git making "rebase" scary sounding. Your pull from master should always be with rebase so your changes get put at the tail end, then your push back should be using it to ensure it's at the end of the chain. Master history should be linear.
(For those not familiar with git - rebasing is where all the changes you made (checkins and such) are noted and put away. Then your branch is fast-forwarded to the tip, and then all the changes you made are applied at the end so it looks like you did a million changes all at once. It re-bases your changes to the tip of the branch so all of them appear to have taken place at the tip.)
Problem is it's a lot of work, pull from master with rebase, merge in changes, test, push to master hoping no one checked in anything else.
Some tools like Gerrit do it automatically by bundling the changes up into one to be checked in as a whole.
Admin
I was on a project where the manager said "I will be the version control system. Whenever you want a file, come and ask me for it."
Admin
Ah, someone mentioned paper tape. I remember using that too.
Master, sub-master and copies. Not all stored in the same place.
Master tapes holding the binaries of radar systems for customers all over the globe. For those to the Middle East, they were punched onto a more robust type of tape, not plain paper, to handle different climate conditions. That came in really handy when the corridor in which the filing cabinets sat flooded one day. The tapes in the bottom drawers were all soaked and mostly unusable. Those strong tapes survived, whether ever needed again or not.
The paper cuts from the tough tapes were much worse too, when winding the reels, I remember that as well!
Admin
I remember being dragged onto an interview panel where we had some decrepit old guy from the testing team included. This was, of course, the high point in his career at that place which had seen being moved "sideways" from development to testing due to an inability to write code that worked.
Somewhere mid-interview he went off script and started quizzing this aspiring junior programmer about how he'd set "Tab Orders" when adding a new control to an existing form. It could have been an interesting exercise in how the guy might approach it (first of all, "you do remember to check that, don't you?!"), obviously it isn't always a straightforward left to right, top to bottom thing, and sometimes you want to jiffle the focus based on user input, etc.
No, the answer was you go to the very last control for focus (probably the "Cancel" button) and set that to a really high number and then reset the tab orders for all controls manually counting backwards as you go. This led to the rather amusing circumstance of the entire interview panel (including a project manager who'd never written a line of code in her life) quizzing him as to WTH you'd need or want to do that.
The slight irony being I knew of a circumstance where you would do it that way to get around an annoying bug, but I wasn't going to let on ... it was an interview after all, even if it wasn't his.
Admin
"Any time she had a point, [...] she had to get Dan to say it for her"
Sounds like one hell of a victim complex. It must have been hell trying to work with her. Sounds like Dan was a respectable member of the team, and everyone else was specifically interns.
Of course, as soon as Benjamin is gone, of course they'll promote the loud person with a constant problem. Because "Diversity". Now there's a new highly-opinionated master of the team under whom everyone must do it This One True Way.
Great.