Posted by mason
on April 27, 2006 at 1:12 PM PDT
Every so often, you are just going through your day like you always do, doing the same thing over and over again, and then suddenly it dawns on you.... THE IDEA. The big one that you can't believe how blindlingly obvious it was before you noticed it. That's what happened to me today.
So, now, as with many of these "spark of insight" ideas, it may very well be that it has been thought of and discarded over and over again, and I am just one of the many who will soon find myself with a sheepish grin and a dunce cap on my head... But also typical of one with with the heat of inspiration behind me, I will convieniently ignore this possibility and continue on like I have just discovered the greatest idea since parsed bread.
So, the story basically starts with me trying to write an altogether too fancy auto updater for a client side application that I am building. It started with custom classloaders and wasn't done until it was a be all end all ginsu knife that could run scripts launch programs, reload classes on the fly... and would only really work properly one out of ever three times. It was just too confusing to get right...
...and then the magic happened. I updated my codebase and was it was running, I thought to myself, geez, wouldn't it be nice if the installer/updater could update itself as easily as this?
Well, why can't it? SVN is free software... and there are a few JavaSVN clients out there that are open source... So, why rebuild klunky tools to update (and install) your application when someone else has already got something tried true and tested that already does this better than you ever could? Why not use SVN itself?
It'd be simple... just create an SVN repository of your compiled binaries somewhere that is accesible anonymously. You could ship with a pre-laid out SVN structure (for people without constant internet connections), and on every startup, have a small applications that perfomes an "svn update". you could go one step firther and have your "launcher" application first check a website to see what SVN revision it should be using... That way it could even roll back a version if you've discovered a critical bug in the current code-base.
You'd be able to do XP-style continuous development even if you're developing a pure client-side application, becuase even the smallest changes could be pushed out with very little network overhead and withotu the fanfare of withe an update or a new release.
So how does it sound then? Is it already being done somewhere (I searched around, but couldn't find anyone who's done it... Even the people in the #svn irc chatrooms were quite suprised by the idea)? Has it been tried and failed already? What pitfalls would there be? I'm curious what kind of feedback I get. Maybe if there is enough excitement, I'll start a project here and see how far we can get. (I've already found a few Open Source java-based svn projects. It probably wouldn't be too much work to put a front end on that and see what the world can do with it.)