views:

2661

answers:

12

I asked a couple of coworkers about AnkhSVN and neither one of them was happy with it. One of them went as far as saying that AnkhSVN has messed up his devenv several times.

What's your experience with AnkhSVN? I really miss having an IDE integrated source control tool.

+13  A: 

Older AnkhSVN (pre 2.0) was very crappy and I was only using it for shiny icons in the solution explorer. I relied on Tortoise for everything except reverts.

The newer Ankh is a complete rewrite (it is now using the Source Control API of the IDE) and looks & works much better. Still, I haven't forced it to any heavy lifting. Icons is enough for me.

The only gripe I have with 2.0 is the fact that it slaps its footprint to .sln files. I always revert them lest they cause problems for co-workers who do not have Ankh installed. Dunno if my fears are groundless or not.


addendum:

I have been using v2.1.7141 a bit more extensively for the last few weeks and here are the new things I have to add:

  • No ugly crashes that plagued v1.x. Yay!
  • For some reason, "Show Changes" (diff) windows are limited to only two. Meh.
  • Diff windows do not allow editing/reverting yet. Boo!
  • Updates, commits and browsing are MUCH faster than Tortoise. Yay!

All in all, I would not use it standalone, but once you start using it, it becomes an almost indispensable companion to Tortoise.

Ishmaeel
Registering in the .sln is optional, but recommended. The registration makes sure AnkhSVN becomes the active SCC when you use multiple SCC providers next to each other. You can remove the marking by unbinding the solution in File->Subversion->Change Source Control.
Bert Huijben
That's nice to know. Thanks, Bert.
Ishmaeel
I would recommend selecting a third party diff tool in Tools -> Options -> Source Control -> Subversion User Tools... (Personally I use SourceGear DiffMerge; a free to use, but very advanced merge tool)
Bert Huijben
+5  A: 

I tried version 1, and it was unreliable to say the least. I can't say anything about 2.0.

If you can afford it, the one I use, VisualSVN, is very good and uses TortoiseSVN for all its gui, except for the specialized things related to its VS integration.

Lasse V. Karlsen
+12  A: 

I always had stability issues with AnkhSVN. I couldn't switch everyone to Subversion where I work without an integrated solution.

Thank goodness for VisualSVN + TortoiseSVN.

VisualSVN isn't free, but it is cheap, and works a treat.

nachojammers
A: 

I tried AnkhSVN (1.0.3, just 4 months ago), and it did not work the way I wanted it to (i.e. needed to select things in the browser window instead of based on active file). I ended up making some macros that utilize TortoiseSVN that work much more like what I expected.

I've been very happy with using TortoiseSVN via explorer and my macros inside the IDE.

crashmstr
+1  A: 

I started with AnkhSvn and then moved on to VisualSvn. I have my own gripes with VisualSvn but its far less trouble compared to Ankh. I'm yet to try the new version of Ankh which they say is a complete rewrite and had inputs from Microsoft dev team as well.

Satish
+1  A: 

I've been using both the newest version of Ankh SVN and Tortoise on a project at home. I find them to both be very good with a caveat.

I've found that both SVN tools have at times failed to keep up with my file/folder renaming and moving resulting in it thinking that a perfectly good file needs to be deleted on the next commit. This is probably down to me misusing SVN in some way but TFS at work does not have this problem.

mcintyre321
true renames aren't implemented in Subversion, instead a delete + add is committed.
Sander Rijken
A: 

@mcintyre321

I've found that both SVN tools have at times failed to keep up with my file/folder renaming and moving resulting in it thinking that a perfectly good file needs to be deleted on the next commit.

A move or rename operation results in an delete and 'add with history' at subversion level.

TortoiseSvn shows this as:

originalFile   deleted
newFile        added (+)
Sander Rijken
A: 

Earlier on (like 2 years ago when I last tried), AnkhSVN and Tortoise used in parallel with the same working copy caused some kind of working copy corruption where Ankh and Tortoise somehow lost track of the state the other tool left the working copy in.

It was as if one of the tools stored additional metadata not contained in the working copy and was reliant on that being correct.

The problems showed themselves by Ankh (or Tortoise) insisting on files being there which weren't, on files being changed which weren't and on files not being changed which were (and thus unable to commit).

Maybe this has been fixed since, but I thought I'd better warn you guys.

pilif
that's normal - change the state of a file outside of VS, and tortoise will show the changed icon, but Ankh will not. Its not designed to keep looking at your files in case you changed them outside the IDE. It still shouldn't cause you any corruption though, it will still work when you commit or update.
gbjbaanb
The newer versions of AnkhSVN listen for the event that TortoiseSVN sends to the explorer window to update its icon overlays. That should fix most of those issues
Sander Rijken
A: 

About a year ago me and a buddy used AnkhSVN for a project... several commits later while moving namespaces around, it broke the SVN repository. Broke as in, the last commit we did got corrupted, and we couldn't commit anymore.

After that we used TortoiseSVN and did the namespace moving manually, it just... worked. If you're only working on base class libraries you could always try using SharpDevelop instead (that integrates with TortoiseSVN).

I do hope they did fix AnkhSVN now though because IDE integrations always rock... when they work.

Spoike
+3  A: 

I had no problems with v1, but I was warned not to use it. I've been using v2 for a while, and I've had no problems with it. I still keep a backup of the repository though...

harriyott
First of all, I think you should *always* keep backups of repositories...Secondly, if any client is able to destroy a repository, then there's a bug in svn, and not in that client. All the client does is send commands over the line, meaning that a specially crafted evil tool can do the same..
Sander Rijken
+4  A: 

@pilif: AnkhSVN maintains an in-memory state of the working copy, which is invalidated/updated by Visual Studio events (ie you edit/change a file) and AnkhSVN events (ie you commit/update/revert/etc)

Whenever the working copy is changed from outside Visual Studio (by editing with another tool, or by using another Subversion client), you will have to refresh AnkhSvn using the Refresh command we provide.

The other thing that happens when you delete a file in a project with TortoiseSvn for example, is that it remains listed in the project file, and you will have to remove it there seperately (and then commit the project file as well).

Sander Rijken
Note from the future: AnkhSVN 2.1 now listens to some events TortoiseSVN sends to the Windows explorer to invalidate its cache.
Bert Huijben
+3  A: 

Copy/Pasting parts of my own Blogpost, as I switched from Ankh to VisualSVN:

Why did I switch? Because i was a bit unhappy with the overall stability of Ankh, since it has some problems actually tracking Solution changes. VisualSVN is “just” a TortoiseSVN Frontend, which means it leaves all the “heavy lifting” to a third-party tool that a) is installed on most Workstations anyway and b) that’s been tested and used by such a wide audience, it’s really rock-solid.

Now, AnkhSVN is certainly not a bad product, and the people behind it are serious about what they are doing, but having long-deleted files still in my SVN or getting the “Please Cleanup your solution” message get’s annoying after some time, but my biggest gripe is the property window. It’s nice that there is a nice window with Radio Buttons asking me which property I want to add. Unfortunately, there is no way to manually enter a property.

Edit: That was for AnkhSVN 1.x. In the meantime, it was updated to 2.x and much improved. I use it in production on a system where I don't have VisualSVN and it works extremely well now.

Michael Stum