Thursday, January 21, 2010

SmartSVN Blows the other Subversion Clients out of the Water

I was a developer in a Window's environment for many years and have had a few years of experience with TortoiseSVN. Once I switched to Ubuntu a while back, I strugged to find a suitable replacement for TortoiseSVN in Linux. I tried a few different solutions including RapidSVN and KDESVN. Neither of those even came close to the ease of use and stability of TortoiseSVN.

A friend who develops on OS X had mentioned that he uses SmartSVN and that it is available for Linux also. As a matter of fact, you can run SmartSVN under Windows, OS X, Linux, and even OS/2 Warp.

So I downloaded it and ran through the 30 day professional version trial. At the end of the trial I immediately paid the fee for the professional version. I know what you're all thinking. This sucker paid $79.00 for a Subversion client when there are a billion free ones available. I gladly paid the fee and say with great confidence that there is nothing out there that even comes close to what SmartSVN can do for you.

Even if I was still developing in a Windows environment and could still use TortoiseSVN, I would have paid the fee to use SmartSVN. TortoiseSVN does not even come close to the level of productivity I can accomplish under SmartSVN.

Merge Single Revisions Across Branches

I work in an environment with many different branches. At any given time I have to work on the trunk and two or three branches. If there is a change that needs to go into the trunk and possibly one or two branches, it is a time consuming process to get the changes everywhere they need to be.

Assuming I am using TortoiseSVN, I'll have to commit the changes to the trunk. Then using a diff tool, merge the changes I made from the trunk to the branch. It is all very manual and error prone. TortoiseSVN does offer a merging tool, but this is only to merge the entire branch, not single revisions or files but it is uselessly complicated in my opinion. You can read more about TortoiseSVN's merging functionality here.
Using SmartSVN, this same task is so simple. After you have commited your trunk changes, switch over to the branch where you wish to merge these changes to. Right click on your trunk commit in the transactions pane and click merge. This will merge the changes from that revision into your working copy of the branch. After that, simply commit to the branch.
If you only want to merge one or two files from a given commit, you can do that too. The amount of time this saves is huge when you don't have to manually merge these changes across branches.

Conclusion

The capability to merge single revisions across branches is huge, but there are still many other features that separate SmartSVN from the pack. For more detailed information on SmartSVN, check out their site at: http://www.syntevo.com/smartsvn/index.html

Also, just for the record, I'm not affiliated with Syntevo or receiving any compensation for this post.

2 comments:

Stefan Küng said...

"TortoiseSVN does offer a merging tool, but this is only to merge the entire branch, not single revisions or files."

Rarely seen so much misinformation in one single sentence.

Have a quick look at the merge dialog, second wizard page. You'll see a wide edit box with the heading "revision range to merge" and even a "log" button right to it which starts the log dialog from which you can custom select the revisions you want to merge.

Michael said...

I stand corrected. But it is still extremely convoluted and ridiculously complicated compared to SmartSVN.

http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/ch05s17.html

© 2010 Confessions of a Java Programmer, All Rights Reserved