Experiences at the Intersection of Programming & Design
I have been using Subversion for several years, and generally love it (I use the Tortoise Client). My one complaint about it is that its development is limited to addressing shortcomings of CVS. That means no innovation.
My Pet Peeve
No innovation means no hope that Subversion will ever store files that aren’t under version control. I use many open source libraries that are under version control from their own repositories, and I can’t store them in the same directory with my own code.Â So I used to make exports of updates of multiple libraries and tell Subversion to ignore them.
This process was inconvenient, but it worked. Since I work on multiple workstations I would have to make a copy of the entire project and move it around with a thumb drive. This made things exponentially more complicated, inconvenient and error-prone. To help compensate I put all libraries into a single directory so that I only needed to maintain a single classpath in Flash.
DropBox to the rescue
After I started using it, it occurred to me that I could use my DropBox folder to store my library. This solved the thumbdrive manual sync issue. I still needed to update and export third-party libraries with some regularity, but a major improvement.
While checking out the DropBox forums I chanced upon an entry describing how symbolic links could be used to include folders outside the My Dropbox folder. It occured to me that this technique would allow me to connect the source folder in third party libraries to folders inside my own library. This would eliminate the export/copy requirement from my update workflow.
Creating symbolic links could be as easy as creating a shortcut, but isn’t. Windows doesn’t come with tools to create symbolic links unless you have a server version. Luckily Mark Russinovitch created a free tool that will create these links on any Windows OS that supports them. It’s called Junction. Microsoft bought his company, Sysinternals, but they still host his products.