Ayende @ Rahien

It's a girl

Visual SVN: Another Zero Friction Tool In The Toolbox

Full disclosure, I have received a personal license for Visual SVN (49$) from the developers on Visual SVN, since they are apparently doing a lot of stuff with Rhino Mocks and wanted to show it.

About a month ago I installed Visual SVN, and then I promptly forgot about it. When the evaluation period has ended, I found myself thinking, "Wait a minute, I really like this tool." Visual SVN works by extending Visual Studio with the same interface as TortoiseSVN, which means that it is instantly usable for anyone that have used TortoiseSVN (basically most developers on Windows that use SVN).

The nice thing about it is that you really don't feel that something different, until it is taken away. I have grown accustomed to the green/orange lights, and I like the ability to right click and "show changes". I am still using TortoiseSVN to do a lot of stuff from explorer, but it is very nice to be able to do them from the IDE.

The options that it offers directly of the right click menu are a subset of what you can do in Tortoise SVN, but it is a close match for the things that I want to be able to do in the IDE, so I have no issue with it. The thing that drove me insane for a few minutes was a menu item being renamed from the Tortoise SVN terminology that I just skipped over, but that is the only issue that I have found.

As you probably know, I have great reservations about putting things in the IDE, mostly because I usually find that they make me wait for them (unacceptable). But Visual SVN is different in this regard because I literally can't find any issues with the IDE integration, the things that I do (solution wide namespace rename, done yesterday) are immediately reflected and I didn't notice any slow down.

Recommended!

Comments

krzysztof@kozmic.pl (Krzysztof Koźmic)
06/06/2007 06:10 AM by
krzysztof@kozmic.pl (Krzysztof Koźmic)

Have you tried AnkhSVN? http://ankhsvn.tigris.org/

I use this (mostly because I did not receive free licence

for Visual SVN.

It's OSS, does similar thing, works well, and I didn't notice any slowdowns either.

I've been using it for 3 weeks, so I'm not an expert (yet ;)) but since it's free

it might be worth checking out. I won't compare it to visual SVN since I never used it,

but if you decide to try AnkhSVN, comparing both tools might be a good topic for blogpost.

Krzysztof Koźmic

Ayende Rahien
06/06/2007 07:36 AM by
Ayende Rahien

@Krzysztof,

I have used it in the past, but didn't like it very much.

Mature reasons such as dislike the icons mostly.

What I like about VisualSVN is that it has the same UI as tortoise,

Diego Guidi
06/06/2007 07:40 AM by
Diego Guidi

+1 for a post that talks about Visual SVN and AnkhSVN :)

Aaron Jensen
06/06/2007 07:46 AM by
Aaron Jensen

AnkhSVN increased my solution startup time (now 43 projects, 2133 cs files apparently, then significantly less) by a few minutes (literally) when I tried it several months ago. Unless they've greatly optimized it... i'd stay away from it and check out VisualSVN, which I run today with less noticeable issue

Thomas Eyde
06/06/2007 07:50 AM by
Thomas Eyde

+1 for Visual SVN. The killer feature is it tracks file movements and renames, then performs the proper actions. In Tortoise SVN, we risk losing our file history and orphaned files.

-1 for Ankh: I tried it a long time ago, so this isn't necessarily an issue anymore; but Ankh used to have problems with R# renames. I don't remember the details, but I believe some files were deleted under the wrong circumstances. Not good.

Guy Mahieu
06/06/2007 08:01 AM by
Guy Mahieu

Same here, I really like this tool and since I'm somewhat colorblind (I have a hard time distinguishing red from green) I was really pleased to discover that you can also switch the traffic light color scheme of the status icon overlays to a blue theme. For me that made the difference between the tool being great or completely useless.

Great job guys!

Gian Maria
06/06/2007 08:31 AM by
Gian Maria

I use Ankh at this time, I like it but it has still some problem, for example in a large project I'm currently working with, when I open the solution Ankh spent a lot of time (about 50 seconds) looking for something in the tree of the project, I see solution explorer expand and then collapse for a lot of time. this problem sometimes occurred when I add a file to a web project, for this reason in large projects I disable ankh and I do everything with tortoise.

alk.

Nate Kohari
06/06/2007 11:32 AM by
Nate Kohari

i was disappointed by Ankh. VisualSVN is a great example of leveraging pre-existing products that are already familiar, feature-rich, and battle-tested, and providing access to it in a more convenient way. Rather than rewriting a bunch of stuff that Tortoise already had, they decided just to give developers access to it from inside the IDE -- excellent idea.

Jeremy
06/06/2007 12:30 PM by
Jeremy

+1 for VisualSVN over Ankh. I used VisualSVN at my last company and liked it but I didn't realize how much until I left and it was suddenly gone. I use Ankh at home and although it seems perfectly functional it's just never felt as polished to me as VisualSVN...mainly visually.

It's worth mentioning that I had some minor gotchas with the old version of VisualSVN (1.1?) but the aforementioned company had switched to the beta of 1.2 by the time I left and everything was smooth sailing.

It's not a 'necessary' tool by any stretch of the imagination and I personally think that Ankh is a very nice free close second, but at 50 bucks a seat it's really hard to justify not buying it for a team.

Chris Ortman
06/06/2007 01:02 PM by
Chris Ortman

I've been using ANKHSvn since 0.6 when it was fairly buggy. Now they're at 1.0 and it has been very stable for me. I tried an early version of visual svn (before it handled adds / renames ) and without that support it wasn't very worthwhile to me so I uninstalled it. I might have to give it another go but right now ANKHSvn is working great for me.

Arild
06/06/2007 01:07 PM by
Arild

Rather than rewriting a bunch of stuff that Tortoise already had, they decided just to give developers access to it from inside the IDE

I take offense to that. The TSVN and Ankh projects were started more or less at the same time, give or take a couple of months. How the hell should we "leverage pre-existing products" when there was no pre-existing product?

Arne Claassen
06/06/2007 03:07 PM by
Arne Claassen

I use perforce for source control, but have had need to integrate into svn for some projects. The issue I have with either Visual SVN and Ankh is that neither uses the Source Control Interface of visual studio. Is it the license that MS requires for using their API, or why do SVN providers have the need to hook into the UI in their own fashion?

Ben Scheirman
06/06/2007 03:18 PM by
Ben Scheirman

I also use Ankh regularly, but it's really for the middle-of-the-road scenario. For heavy lifting with SVN, such as conflicts, branching, merging, tagging, and maintenance I'll use Toirtoise or the command-line.

for basic update, commit, and add functionality AnkhSVN works as advertised and is a great free tool to have.

Ben Scheirman
06/06/2007 03:21 PM by
Ben Scheirman

Arne:

think of it like this. You can either choose to interface with an inferior model of source control, or you can write your own that takes advantage of the tool.

There are many reasons why those tools don't integrate with that provider. here are a few mentioned on the VisualSVN FAQ:

" * MSSCCI is dedicated to Visual SourceSafe and not very situated for Subversion;

* MSSCCI is dedicated for Checkout-Edit-Checkin approach, but Subversion is built from Edit-Merge-Commit;

* MSSCCI doesn't provide atomic transactions;

* MSSCCI provider can't show status for folders;

* only one MSSCCI provider is available at time. There are a lot of use cases, where Subversion and Visual SourceSafe controlled projects are used together in one solution."

Does perforce even do that? Last time i used perforce the client had the perforce application running behind Visual Studio...

Arne Claassen
06/06/2007 05:21 PM by
Arne Claassen
  • MSSCCI is dedicated to Visual SourceSafe and not very situated for Subversion

It works fine for perforce, so i don't know what's so VSS specific

  • MSSCCI is dedicated for Checkout-Edit-Checkin approach, but Subversion is built from Edit-Merge-Commit;

True, perforce has the same checkout mentality. Not sure if VS tracks what's checked out internally or queries the provider. I know it tracks newly added internally and doesn't even communitcate that to perforce until check-in is attempted. Given that svn tracks modified and added, making it behave as if it was checking things out shouldn't be too difficult.

  • MSSCCI doesn't provide atomic transactions;

That's incorrect. When you Click check-in in VS, it hands over control to the SC provider. In the case of perforce, it pops up its check-in window where you can make additional changes, add comments, check off jobs and then the check-in is atomic.

  • MSSCCI provider can't show status for folders;

Ok, true. But the status of a folder really is really a visual proxy. I.e. the folder has no status, just the files within the folder. It's not something I've ever missed. And if you go into the "Pending checkins" window in VS, you do get the hierarchy of modified/added files which includes folders.

  • only one MSSCCI provider is available at time. There are a lot of use cases, where Subversion and Visual SourceSafe controlled projects are used together in one solution

This i'd call a hack. Because SVN is not using MSSCCI it can additionally mark-up files so it can co-exist with VSS. But that reasoning breaks down at the 3 source control scenarios. I have a project that's going through perforce and SVN. But i choose one for my primary that i control via VS and the other I just sync up, since it's the slave anyway

I'm not saying, get rid of Ankh or VisualSVN if it works for you and it is needed for a specific use case. I'd just prefer to use one that takes advantage of the built-in mechanism

Ben Scheirman
06/06/2007 07:33 PM by
Ben Scheirman

The Edit, Merge, Commit approach is one of the greatest parts of subversion.

I hear good things about Perforce, but if it didn't support that model then I wouldn't want to use it personally.

Arne Claassen
06/06/2007 09:35 PM by
Arne Claassen

Sorry, Oren, for using your thread as a forum. I promise i'll stop now as this is way off topic.

Ben,

Perforce doesn't do exclusive check-out, it just marks files as checked out so you can see who else has a file. It does not prevent you from checking it out as well and editing it. And as far as branching and merging, I switched from cvs and svn to perforce, because it is absolutely the best when it comes to branching and merging.

Arild
06/07/2007 08:20 AM by
Arild
  • MSSCCI provider can't show status for folders;

Ok, true. But the status of a folder really is really a visual proxy. I.e. the folder has no status, just the files within the folder.

This is not true for Subversion. In Subversion, a directory has a status of its own, distinct from that of the files contained within.

Erik Lane
06/07/2007 02:03 PM by
Erik Lane

There is something that doesn't feel right when trying manage source control from within the IDE. I've found that it gets in my way more than it helps. It also keeps me honest and on my toes so I have to pay attention to what I'm doing.

Chris
06/07/2007 04:19 PM by
Chris

I started using Ankh 0.6 and at the time it was quirky but it worked. Ironically I tried VSVN when it was at 0.6 as well. It had alot of shortcomings at the time and didn't match the functionality of Ankh so I uninstalled it. I've revisited it a few times since and still find it lacking features that Ankh has. Despite the $49 price, as soon as its as mature as Ankh I will probably make the switch. I like its integration better than Ankhs and like the icons so much better which is still one my of biggest annoyances with Ankh.

Chet
06/08/2007 05:25 AM by
Chet

I am definitely in favor or the SVN model over SCC - our switch has made the world of difference (especially because our SCC DB was close to 4 gigs)

Thomas Eyde
06/08/2007 10:44 PM by
Thomas Eyde

Arne: Why is it so important to you that VisualSVN doesn't use MSSCCI?

Jason
06/09/2007 12:05 AM by
Jason

Somewhat on a tangent, there is an scc provider for subversion from a russian company called pushok software. I believe it's $35us per seat.

You can find it here: http://www.pushok.com/soft_svn.php

Comments have been closed on this topic.