| John's profileJohn BarshingerPhotosBlogLists | Help |
|
May 20 SVN Rocks! (Subversion)We had been using NGSource for a long time so that we can develop code over the internet using a solid version control system. As most people who have tried it know, Visual SourceSafe performs terribly over the internet. NGSource works pretty well but it has its warts as all good software does... A few months ago, we decided to switch to using Subversion instead which is an open source version control system. We have never looked back! We install TortoiseSVN on our developer boxes and use Hamachi to create a VPN that all developers connect to. It works great! One thing that I thought I would miss but don’t is the integration that NGSource does with the Visual Studio IDE: it shows what is checked out by you or others and permits you to do all your source control operations inside Visual Studio. However, this is both a blessing and a curse. It is hard to argue with its convenience however, this integration also slows everything down significantly and occasionally causes random burps and hangs. Now we just do whatever we want unhindered by the source control system and use windows explorer to update or commit our changes to the source control system. An extra step indeed but the speed and robustness of this process is worth the effort. Another great feature is forward compatibility, since TortoiseSVN is not a plug-in to Visual Studio, I don't have to worry that a Service Pack or upgrade to a new version of Visual Studio will break my source control system.
Now there is one big paradigm shift between typical source control systems and SVN. With typical (old-fashioned) source control systems, you lock a file when you want to work on it and no one else can modify the file while you have it locked. SVN does "optimistic locking". It keeps track of who changes what and when you commit your changes, it will automatically merge any conflicts that it can or ask you to help merge the conflicts. In reality, it does a good job of automatically merging and it is a pretty rare occurrence for files to end up in the conflicted state where you need to manually merge the conflicts (although we do try to assign work so that different developers are working on different parts of the code as much as possible). This brings me to my next tip! After installing TortoiseSVN, install WinMerge. It will automatically attach itself to TortoiseSVN so that it gets used for differencing files. It is most excellent! |
|
|