Friday, March 14, 2008  

I've been a Mac user for a little more than 6 months now, and while I'm still writing software for the Windows platform, I'm toying with the idea of targeting OS X for an upcoming product. The use of version control software is part of the software methodology used at White Peak Software, and the version control software I used is CVS (Concurrent Versioning System).

Why CVS instead of Subversion? Simple. I have been using CVS since early 2000. It works for me and I see no reason for moving to Subversion. If I were starting from scratch I would most likely select Subversion for versioning control, but that's a different story for a different blog post. This blog post is about my review of the various CVS clients available for Mac OS X.

TortoiseCVS is the CVS client I use on Windows and is by far, in my opinion, the best Windows CVS client out there. This of course is what I used as a baseline for finding a CVS client for the Mac. The CVS client I use needs to be as good as, or close to, TortoiseCVS. My preference for a CVS client for the Mac would be one that provides a Finder like user interface and uses right-click popup menus to interact with the CVS repository. That's what I went searching for and here is what I found:

Xcode

Xcode from Apple has an SCM repository feature that works with CVS, Subversion, and Perforce. I like the approach used in Xcode but I wasn't able to get it working with my CVS repositories. The first problem I encountered was the lack of sserver support. The workaround for this is to use CVSNT instead of CVS, which comes installed by default on OS X. Unfortunately Xcode has a problem with sending the password to CVSNT and since CVS doesn't support sserver Xcode was quickly off my list of CVS clients to consider.

For grins I decided to enable pserver on one of my CVS repositories to test Xcode with CVS. Unfortunately I ran into more problems. For starters, there is no way (that I can find) for specifying a module. Secondly, when I was finally able to get Xcode to checkout a complete repository it would crash Xcode. I was testing with a rather large repository and the crash happened after about 20 minutes of download time. I tried this 3 times and the crash happened all 3 times. So even if Xcode did work with CVSNT and I was able to use sserver, I still could not use Xcode as my CVS client.

MacCvsX

The next CVS client I tried was MacCvsX (version 3.3 beta 2). This client has no problems accessing my CVS repositories but I found the UI to be a bit cumbersome. Also, I didn't like the fact that when I wanted to add lots of new files to the repository I had to select each and every file individually. There is no "Add Content" feature like that found in TortoiseCVS. While I can do everything I need to using MacCvsX, I found it UI to be inefficient. Thus my search for a CVS client for Mac OS X continued.

MacCVS Pro

I looked at MacCVS Pro next, but I never downloaded it. The revision history shows the last update to be March 27, 2000. That's nearly 8 years without an update. I doubt it will run on my Intel-based MacBook Pro so I didn't bother to download it.

After more searching I discovered that the MacCVS Pro website at maccvs.org is out of date and no longer maintained, but the project lives on at SourceForge.net. The up-to-date MacCVS Pro can be found at http://sourceforge.net/projects/maccvspro/. The latest update at the time of this writing is January 14, 2007. Ah, much better. I did download it but I never ran it. According to the release notes in the readme file the latest build of MacCVS Pro "will only run on PPC machines (and Intel machines via Rosetta)." And the readme goes on to say "This is likely the last version that will be built using CodeWarrior, since CodeWarrior is no longer commercially available." So MacCVS Pro is not the CVS client for me.

MacCVSClient

The next CVS client I looked at was MacCVSClient version 1.10. Now this product is more to my liking especially after looking at the other options. It works well with my CVS repositories and I like the concept of opening a sandbox to get a hierarchical view of the files. I also really liked how the hierarchical view automatically refreshed to reflect the most recent changes to the sandbox area and files within the sandbox. What I didn't like was the diff viewer. While usable it wasn't what I have become accustom to. I prefer the split window approach when viewing differences between files. Still, MacCVSClient is an excellent choice for those looking for a free CVS client for the Mac.

SmartCVS

My search to find the ideal CVS client for Mac OS X lead me to SmartCVS from Syntevo. SmartCVS as a very clean, modern looking user interface. It provides different views of the sandbox. It allows me to easily checkout specific modules instead of the complete repository. As a matter of fact, SmartCVS has a project manager that allows me to save the settings for a particular module. I found this feature to be really cool and handy. And even though it does not have the "Add Contents" feature found in TortoiseCVS, SmartCVS does make it easy to add large sets of files to a repository even when the files are contained within subdirectories.

SmartCVS comes in two favors, Foundation and Professional. Foundation is free but it does not include all the features found in the Professional version (click here for the features comparison chart). The Professional version is affordable costing only $79 USD for a single user license and discounts for multi-user licenses.

My only complaint with SmartCVS at the moment is that Syntevo needs to improve its SEO. I didn't find SmartCVS in my initial searches and had I not spent a few nights in a row looking for CVS clients I probably would have never found it.

Conclusion

In my opinion and based on my needs, SmartCVS is the best CVS client available for the Mac. It lacks some features that I have come to expect with TortoiseCVS such as the ability to use the diff and merge tools of my choosing, but it definitely has unique features that I like such as the Project Manager. So if you are looking for a good CVS client for the Mac, give SmartCVS a test drive.

[Update] Turns out SmartCVS does allow users to specify external file diff and merge tools. The options are found under Preferences.

posted by Kirby | March 14 11:55 AM | comments (2)


Thursday, March 13, 2008  

After fighting with a few last minute issues when running under Vista, Killink CSV 1.9 was finally released last night. I wasn't able to get all the changes I wanted into this release but I got a good number of them. The biggest change is the new sort feature. Users are now able to sort their delimited text data using Killink CSV. Also included in this release is improved navigation (quickly jump to the top, bottom, left, and right most item using Ctrl+Arrow key combinations) and more ways to select values (Shift+Click to select a range of columns or rows, Ctrl+Shift+Arrow keys to select blocks of items from the active cell). And finally the ability to paste a value to multiple cells simply by selecting a block of cells.

This release was long overdue. But I'm hoping users will find the wait worth well. Please read the revision history for a complete list of changes.

One feature that did not make this release is Unicode support. I really wanted to include this feature in version 1.9 but it is taking more time to implement than planned. So instead of delaying the other features I decided to release version 1.9 without Unicode support. At the moment Unicode support is now planned for version 1.10 which I have already started work on and will be released soon.

posted by Kirby | March 13 09:48 AM | comments (0)


Wednesday, March 05, 2008  

My buddy Alex was on NBC's Today Show this morning in a bit about jet lag.

posted by Kirby | March 5 11:21 AM | comments (0)
 

Nine Inch Nails quietly released their latest album, Ghost I-IV, online Sunday night but it was anything but quiet. Fans flooded the server to get the new album. This caused an overload on the server, which finally was brought down on Monday for a few hours to correct the problems. Despite the temporary server problems in the first 24 hours, this experiment in how to buy and sale music online is a complete success in my opinion and I hope more artists follow NIN's lead.

NIN is offering a free sampling of the new album, Ghost I, which includes the first 9 songs. You can buy the complete 36-song album, Ghost I-IV, for only $5, which I did right away. A great bargain in my opinion. Other purchase options include a 2-CD set for $10, deluxe packaging for $75, and a limited signed edition, which sold out in less than 24 hours, for $300 (2500 limited edition units x $300 = $750,000 gross revenue in 24 hours...awesome!).

Years ago I collected music, first on vinyl than on CD. My total music collection was around 3,000 pieces but a third of those pieces were stolen when I moved to NYC. This depressed me and I was no longer motivated to buy new music. I went from buying hundreds of CDs a year to buying less than 5. And this lack of motivation has nothing to do with pirated music available on the Internet. My MP3 library is a copy of my favorite music from my CD collection, not pirated music. So over the past 8 years I have not listened to or bought much in the way of new music. But this is slowly changing.

Recently I bought a couple of albums from Amazon MP3 Download store. Why now? Because Amazon offers DRM-free music. Buying music online is nothing new but I have a real problem with DRM enabled music that limited my personal use. So the introduction of DRM-free music was the first step in getting me to buy new music, but I'm still not buying as much music as I use to. Why?

I prefer buying complete albums. Sure, I have a favorite song here and there, but to me the entire album represents the complete vision the artist had at that time. I can't image buying and listening to only 1 track from Lou Reed's New York. You really must listen to the entire album, and in song order not shuffled. Again, in my opinion. But buying complete albums even on Amazon MP3 Download store can be expensive especially for some of the music I like. For example, The Eye by Yello is $19.80 on Amazon MP3 and that's only $2 less than what I paid for the CD when it first came out.

So the high cost of digital music downloads keeps me from buying as much music as I once did. Why pay CD price for something that is digital only? The lack of packaging and materials alone should sufficiently lower the price for a complete album.

So while I'm still slow to buy music like I once did, but that will likely change if more artist follow the lead of Trent Reznor and NIN. $5 is a great price for a digitally downloaded album, a price I'm willing to pay over and over again. And it is probably a good price for the artist too who, like NIN did with Ghost I-IV, publishes and sells the album directly to the consumer bypassing the record industry. I don't know the actual figures but I got to believe a $5 album sold as digital download directly by the artist will put more money in the artist's pocket than selling same album for $14 on CD though a record company.

posted by Kirby | March 5 09:29 AM | comments (0)
Copyright © 1999-2008 Kirby Turner.
Site software written by White Peak Software Inc, a provider of custom software and software development coaching.