
The scene in my head
Short version: Override and Update != Update. Update is mostly innocuous, and is rarely destructive. Override and Update is none of those things. Override and Update makes Shannon lose weeks worth of files. Files are important. Without files, there is no application.
The branch I was working on hadn’t been committed in… about a month. Most of that time was spent working on other projects, but the first thing I should have done coming back to it was ensure everything committed correctly. I did not. A few days ago, I used an outside application, Meld, to update our common libraries and other required files from our stable branch. That worked fine. I should have committed then. I did not. When I tried committed things this morning, it turns out I was committing to the trunk, and not the branch. I have no idea how/why this happened, but it took me about an hour to fix that blunder. Luckily it was mostly new files, which just meant they needed to be deleted out of the repository, and not un-updated, which is a real pain.
After fixing blunder number one successfully, I moved on to attempting to get my project to use the right branch. What I should have done here was make a second copy of the working copy. I did not. The moving of all those files into the branch the other day caused a huge amount of files out of sync (about 200), and I found that most of them were actually in need of overriding. This is my big mistake. I accidentally highlighted a directory along with a number of files to Override and Update. That directory houses all of the forms I’d been working on for the last two weeks. None of which were committed.
After realizing what I’d done and hoping to God that I hadn’t actually, I enlisted my co-workers in a little research about undoing something like that for files that have never been committed and that no longer exist on disk. Luckily, Eclipse has a local history of recent files, and I got about 90% of the form files back that had not been committed. However, there were a number of older files that had been committed that no longer existed, and svn was acting all bizarre. At this point, I set the blunder-ridden working copy aside in a new directory.
I checked out a brand spanking new version of the branch, and a brand spanking new version of stable application. I brought the required updates into the new application using Meld to compare files. This part was relatively easy. I then committed those changes, so that our branch was stable and also had the month-old additions from the last time I’d committed. Then I tried to bring what was working out of my blundery version into the new copy. This part was really time intensive but resulted in about a 95% data recovery, with all of our updates and fixes from the last three months brought into the branch.
However, this process took all day, and I feel like I actually moved backwards, as I do have some stuff to re-make. But not weeks worth of work, which is a bit of a relief.


This weekend, I showed my todo list who’s boss for once. I was able to cross off every item on my list, and in addition, had a great weekend. Pizza and Laundry night has turned into a bit of a weekly tradition, mostly because laundry needs to be done and we like pizza. It’s a nice way to end the week.