User Interfaces, Having a Job, and SVN Delete *

Last Friday I officially became a real employee for SurveyGizmo. I spent two weeks testing the Gizmo waters while they spent two weeks testing the Jase waters. Verdict: we like each other… so much so that they want to pay me regularly for giving them some styles and some code and a bunch of pixels, regularly. Sweet.

Now, part of my job involves religious interaction with SVN via the terminal or shell. Translation: command line interface… just monospaced text with no (gasp!) buttons, images, or pretty pictures. I’m not new to terminal life, but I’m not a pro at it either. I’m not afraid of it. Um, at least I wasn’t until Monday which coincidently was my first real day on the job.

In my defense, I’d just like to point out that even a text-only interaction has an interface: the commands that need to be typed. For instance, in SVN, when you are ready to save your work, part of the process may include adding new files to the repository that did not exist in the previous version of the file set, like a new image or style sheet, or a new template file. So to add new files, you use the ‘add’ command which finds new files and preps the forthcoming commit command to include the newly added files. And if there are a handful of new files, you can use the * shortcut which essentially means ‘all’. So the command: svn add * would trigger SVN to add all the new files to the revision queue.

One would think the ‘delete’ aspect of the SVN user interface would work as the counter-part to the ‘add’ interface action. It does not.

So on my first real-non-contracting-trial-day, as one of the first things in the morning, I ran this command: svn delete * in an attempt to get some deprecated files to stop showing back up every time I did an update sync with the repository, thinking this would notice that the files I’ve deleted are missing and prep the revision state to not contain those. You see, I’d delete the un-needed files via FTP but they would pop back in from SVN because I did not remove them from the version controller.

I managed to wipe out my entire set of working files, as well as a slew of other files that were in the directory where the SVN command was issued, in about 1.5 seconds. Then I spent the next hour or so with my office-mate trying to get them back by restoring previous revisions from SVN, but for whatever reason, I got stuck in this weird loop that would bring some files back, but not all. So I had to beg our sys-admin to intervene, which he did rather speedily, in between LOLs and questions like, “How far into typing d-e-l-e-t-e did you get before thinking this might not be a good idea?”

To which I replied, “It never occurred to me that this would happen. SVN’s user interface is broken! Why is ‘delete’ not the reciprocal of ‘add’?!”

“Yeah, delete is not the mirror opposite of add.” Pure genius.

“See? Busted interface.” I snapped back. Then he just laughed at me some more.

0 Responses to “User Interfaces, Having a Job, and SVN Delete *”

Comments are currently closed.