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
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
@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,
+1 for a post that talks about Visual SVN and AnkhSVN :)
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
+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.
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!
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.
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.
+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.
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.
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?
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?
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.
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;
Does perforce even do that? Last time i used perforce the client had the perforce application running behind Visual Studio...
It works fine for perforce, so i don't know what's so VSS specific
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.
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.
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.
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
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.
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.
This is not true for Subversion. In Subversion, a directory has a status of its own, distinct from that of the files contained within.
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.
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.
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)
Arne: Why is it so important to you that VisualSVN doesn't use MSSCCI?
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
Comment preview