The development community is divided into two halves: the designers and the coders. I never know which one I am. Many may look at my designs and code and say that I’m neither. I would prefer (for my own self-confidence) to think that I’m both, although the two disciplines tend to sabotague each other. It’s very difficult to design effectively after days of looking at source. It is equally difficult to build and maintain an application of any size when the design part of you shuns conformity and structure.
My latest clash of these tendencies is version control. For those of you that are familiar with Dreamweaver but unfamiliar with version control, consider the check-in/check-out feature in your Site Definition a light version control sytem. Check-in/check-out in Dreamweaver prevents multiple people from editing a file at the same time and thus, hopefully, prevents versioning errors that could occur if multiple people edited and uploaded the same file around the same time.
Preventing multiple simultaneous edits is one thing, but there are many other things to consider that Dreamweaver does not tackle. What if you want to return to a previous version of a file? What if you do want to ‘fork’ a document allowing development to continue on the original while also allowing development to begin on a new version of the document? What if you need some accountability as to who changed what and when? What if you find a need to merge two versions of the same document? All of these things and more can be handled by a true version control system.
The most popular (it seems) system today is called subversion. It is a server application that can run on nearly any platform and, once installed, can be accessed by numerous client applications that have been written or by the native command line interface.
So here I am. I know I should do this. I know it’s needed. I want to know how to use one. I have downloaded Subversion and installed it on my laptop as a way to begin learning it. Now I need to force myself to learn and use it. I hope that this is a great experience and something that will improve my development… If only the design part of me will allow it.