A Meditation Upon a Deleted Group Repository

Because iOS code is written in Swift and Objective-C, but I couldn’t think of anything that would work as a pun about Objective-C.

The background for this page isn’t even Swift. Oy.

#

As I emerge from my chrysalis of career transition as some sort of soft, vaguely revolting, multi-legged thing who’s carapace has yet to harden, I have been advised by the architects of my horrible metamorphosis that I should keep a blog pertaining to writing code. “But I already have a blog,” I protested through the alien anatomy of the new monstrous mandibular appendages that have taken the place of my mouth. “A blog about writing where I rarely update because I usually have a near complete inability to think of anything to write about.”

But I was told that I needed to take ownership of my brand, that I should be documenting my learning experiences and helpful hints that others might find useful. Oh, and I should totally not be doing anything where I compare myself to a repulsive insect.

Well… fuck.

Anyway, as I and the rest of my brood await the stiffening of our wings so that we might take flight and incite terror in the world of man, we’ve been busy polishing up our resumes and job-hunting skills. This involves us putting the projects we’ve slaved over onto our resumes and linking to our repositories so that prospective employers may peruse just exactly how much slaving over them we accomplished.

Unless, of course, one of your team mates just up and deletes the repository.

This did not happen to me personally (nor was I the one to delete the team repository, as I’m sure was everyone’s next guest), but I did have a front-row seat when it occurred. The act was perpetrated by someone who used to work for GitHub (or so they claim, but their actions today certainly doesn’t inspire confidence in their words), which just makes it all the more baffling. If it were the act of some bumbling neophyte, that might be at least partially understandable, but presumably this person knew exactly what they were doing. What, exactly, they were trying to accomplish by deleting the codebase to the project they shared with two other people who were still making use of it, I haven’t the foggiest notion.

Fortunately, this mishap was easier to recover from than it might have at first seemed. Firstly, the victims of this action still had local copies of the repositories on their own machines, so they hadn’t lost that. It would be a trivial matter to just start a new repository and upload what they have, so why make a big deal about it? Because we had a desire to preserve the commit log, as it can be a useful tool for showing workflow process and adherence to regularly adding/committing/pushing to the remote repository.

As it happens, preserving the commit log wasn’t anything particularly complicated, either. A new repository was created as outlined above, but instead of uploading the files directly into it, they went into the local repository and changed the URL of the remote repository to the one they just created. Push the files up to the master branch, and voilà. Everything restored, and now only the headache of locating every place you’ve uploaded a resume or created a link to the previous URL. Best of luck with that, you poor, poor soul.

Thank God I never mess up like that. I’m practically prefect in every wy.

–Mike