Mar 10
Lots of the online documentation on CVS is a bit old (except mine of course :-) and it assumes that you are developing in C on a unix box. Nothing wrong with that, but it may not be the most common or relevant stuff for us CF'ers! You are more likely to have a windows based PC (appologies to MAC users, just don't have the experience there) as your development platform. The great news is that you will be spoilt for choice of CVS client tools on the windows platform! Here are a handful that I originally evaluated.
SmartCVS
SmartCVS is a polished commercial tool written in Java (needs a JRE installed) and even when I looked at it a couple of years ago had an impressive set of features. Because it is Java based it is available on LINUX and Mac as well as Windows. It runs as a stand alone application and provides a clear visual view of your repository. My Main problem with this tool (which may have been improved in more recent versions) was that operations tended to be on a file by file basis. You could not easily do operations on a whole project. This makes operations a bit slow. Please have a look at this tool though, it is several versions on now and is a good product.
TortoiseCVS
TortoiseCVS is an open source project and is actively developed and has a friendly and responsive community and mailing list. It is a simpler tool in that rather than opening as a separate application it integrates with the windows file explorer. It adds a number of context options to the right click menu within windows explorer. In addition it overlays the regular file and folder icons with icons indicating the state of file in relation to the remote repository. (e.g. has it been changed since it was checked out? etc.) It is possible to add additional repository information such as the revision number of each file as an extra column in window explorer, although I seem to remember that I constantly had to set this up for each new project - windows did not want to remember it as a global setting. The light weight nature of TortoiseCVS makes it a good tool for beginners (doesn't daunt with a host of menus and new views) but it is fully featured enough to satisfy more advanced users (handles branching, tagging, merging operations). Being open source it is free which is a bonus if you are sneaking this in under the managements radar :-) Downsides of TortoiseCVS are that it can make windows explorer windows a bit slow to load as it figures out each files state in relation to the repository and overlays the correct icon. You can limit this to a particular subtree of your drive which is good. ToritoiseCVS is developed specifically for CVSNT (rather than the regular CVS on Linux) but I never found any problems using it against a Linux CVS repository. If you use this over a secure ssh connection (which I recommend) then, to get ease of use, you have to use a tool from putty called pageant which stores your secure keys for you. Sounds complicated but if anyones interested I have detailed instructions - just email me.
WinCVS
WinCVS is another open source project and again is slanted towards CVSNT, but as with TortoiseCVS it works just fine with a CVS repository on Linux. If you really want to delve into the details and intricacies of CVS WinCVS is the tool for you. It leaves no feature uncovered, but in the process it is a bit overwelming for beginners. It is actively developed and supported.
Eclipse
It will be no surprise to anyone who has read my other posts that I am a huge eclipse fan! The main reason for investigating it seriously in the first place was to get a CVS tool that integrated with a code editor. The main goal was to make the introduction of CVS as painless for developers as possible. I figured that busy developers, with deadlines to meet do not want to have to grapple with some new tool and set of concepts that does not seem to directly help help them achieve their goal of developing code on time. Of course it does help with this goal, but at first it just seems to be another hurdle that you are putting in the way of getting stuff done. So if the CVS tool can be as unobtrusive and easy to use as possible thats a big bonus.
Eclipse has always had CVS support as a core feature. Its not an additional plugin. As such it gets regularly updated as part of the main eclipse project, and just keeps getting better. It is (IMHO) the best developer-centric implementation of a CVS client I have come across (especially as its free). Everything you want to do is on a right-click menu directly from the navigator pane (showing an explorer view of you project files and folders). A project can be easily added to CVS and once it is the navigator pane shows CVS details (which repository, which branch and revision number) directly the navigator pane. Operations can be done at any folder level and will apply to any files below that level. The eclipse implementation has 'smoothed the edges' of some CVS commands so that (for example) rather than a separate 'Add' then 'Commit' that CVS wants for new files CVS just shows you commit and if the file is new does the 'Add' for you without any fuss. There is a dedicated CVS resource history pane which will show a full history of who, what and when for any source file. We now use this in preference to comments at the top of the source file which are less reliable. You can compare your working copy with any previous revision in the repository and eclipse will fish out the previous copy and show you a side by side 'diff' which is great for seeing the changes you have made or the changes made by the last developer (when tracking down a new bug :-). When you get to more advanced use of CVS (branching and merging) eclipse keeps what can become confusing processes, within the IDE and lets you do the scary bits on a local copy before you commit anything. (more on branching and merging in future posts).
All of this functionality (and more I have not mentioned) it available to you from the CF plugin to eclipse cfeclipse, which is my mind makes it the clear choice of IDE for any serious CF team.
Recent Comments