Fully Operational SVN and Task Tracking and Publishing System

The CF Webtools tag line is "You Dream it We Build it", including SVN servers.

Keeping it in house
CF Webtools has been using it's own task and project tracking system for years. Over this time it's grown. It keeps track of clients, hours of dev work, hours paid by clients, projects, project tracks/tasks and a lot more. It does what CF Webtools needs and it will be expanding as more needs come up. But it does not integrate with anything (or it didn't used to). We also run our own SVN server as well as numerous development and staging servers. All needed to maintain the clients dev/staging sites for ongoing work.

Mark Kruger, aka. ColdFusion Muse believes in keeping these services in house as much as possible. I know people will argue the cost of do it yourself, verses someone hosting it for you. But, there are other reasons being considered as well. We're keeping it in house. However, it finally came to a point where we needed a better SVN system and some integration.


ColdFusion Builder 2 and the Subversive Plugin

One of the first things you may need to do after installing ColdFusion Builder (or Flash Builder) in setup SVN. My personal preference is the Subversive Plugin. Prior to importing any projects I recommend installing the Subversive plug in and getting it setup with an SVN connector. Doing this first will make importing any existing previous version CFBuilder projects or existing SVN Checkouts much easier to import and get re-connected.

I am blogging this because the great Ray Camden, the ColdFusionJedi, was tweeting for help today with this subject and the Subversive plugin. This is what we figured out. Not all SVN Connectors are equal, use SVNKit. Below is how to install Subversive and the SVNKit connector and why you should choose this connector.

You need to install the plugin first. On the Standalone version of ColdFusion Builder do the following:


SVN Clients For OS X

I do a lot of work with version control on the Mac. Typically I only use the Subversive plug-in for ColdFusion Builder or Eclipse. However some clients of ours at CFWebtools are using Versions , so I had to install and learn Versions to help them out. The download and install is typical "Mac easy". However, I find the way Versions works is a bit more confusing than it should be. Also, unless I am not seeing them, Versions only has a subset of the SVN commands. I am not seeing merging, branching and tagging. I don't know how you're supposed to merge branches and tag using Versions. To me this is a severe shortcoming.

Also I found the UI to be confusing. Repository Bookmarks? What are those? I've never heard bookmarks used in terms of SVN with exception to how tags are sometimes explained. When you look at the top level in the Bookmarks pane you get the view of the server. In other SVN clients this is called the Repository Browser mode. In the subfolder level of the Bookmarks pane you see the code checkouts. I can see how is it very easy to get the two views, which are blended together into the same window, confused. As far as functionality goes, I can checkout, commit, update and view differences etc. However I cannot merge two branches or merge a branch back into the trunk. I can checkout the trunk and a branch for the same repository at the same time and see them both but I can't do a merge. If this was a freeware product I suppose it would be acceptable that wasn't full-featured but this is commercial-ware and as I see it, it's missing critical features.

So I started downloading other SVN standalone clients. There is RapidSVN and SmartSVN that I found and they both looked like they have a decent UI to work with. First I tried RapidSVN and it required Rosetta to install so I said "the heck with it", and deleted it. SmartSVN did install and what struck me was it had a more intuitive interface than Versions. The first thing it did was to ask if I wanted to connect to an existing check out of code. Not, ask if I wanted to create a new Repository Bookmark. Of course I did, I have code for about a dozen projects checked out. I also found that SmartSVN has a more complete set of version control commands, including merging and branching and tagging. Also the UI does not try to blend or hide the difference between the repository browser and your local check out. If I need to browse the repository it does so in a new window just like every other SVN client I've used on Windows and Mac.

SmartSVN clearly, without any customization, identifies changed files. And I believe the default sort order was by changed files on top but don't remember if I change that right away or not. It is very easy to change the way you sort your files with SmartSVN. I found that the ignore feature works like other advanced SVN clients and lets me set wildcard patterns. This is something that I noticed I could not do in Versions.

Overall the look the feel and the flow of usage of SmartSVN was very intuitive and useful. If I needed to use a standalone SVN client I would definitely purchase SmartSVN even though the price tag is a bit hefty at $80. Which is why I prefer using the Subversive plug-in for ColdFusion Builder.

Of course OS X already has command line SVN commands available at your fingertips if you so choose to use them. Enjoy!

*** UPDATE ***
Cornerstone was mentioned in the comments below, so I downloaded and tested. My quick 5 minute review is positive. Multiple SVN repositories, clear delineation between repo view and check out view. Most SVN commands available on right click (had to hunt around to find ignore). Branching is as easy as it is in Subversive. And the price is better than SmartSVN. +1 for Cornerstone.

Getting Started with ColdFusion Builder

ColdFusion Builder is here and it's finally shaping up into a great IDE.  However, you need to know a few things before you jump right in if you've never used an Eclipse Platform IDE.  If you have then your way ahead of a lot of people.

ColdFusion Builder is built on the Eclipse Platform (version 3.4 at the time of writing this article) which had it's start internally at IBM. In addition ColdFusion Builder incorporates Aptana which is a full featured IDE that has most everything you need for web programming except a CFML editor and hooks to ColdFusion servers.  Adobe worked with Aptana to use their customized Eclipse based IDE to make ColdFusion Builder.

Getting Installed

New to Eclipse base IDE's? You're not alone. I was new to the Eclipse IDE's a few years ago and found it to be a different way of doing things as compared to my favorite editor, ColdFusion Studio.  There is a big learning curve, but do not let this scare you.  Once you learn the basics of the Eclipse platform you will find there is power under the hood.  In addition you get a universal programming IDE that supports dozens of languages by simply installing a plugin.