views:

7179

answers:

10

I would like feedback on what people consider the "best" free (or cheap) subversion tool for C#... By "best" I mean easiest for a given level of capability. I am a complete newbie in C#, and am using Visual C# Express as my development tool. Obviously I am not a sophisticated C# user!

In Java I use Eclipse, and Subclipse, which I find fairly easy to use. I tried TortoiseSVN, and couldn't get to first base with it - not sure why not - maybe just the wrong mental habits! Ideally I would like something that has the same relationship to Visual C# Express that Subclipse has to Eclipse... Help would be appreciated.

+29  A: 

Tortoise SVN is the best for windows. Spend some time reading the documentation and you'll get it. The interaction between the explorer window, the overlay icons, and the repository is quite nice.

Similarly, I like the VisualSVN plugin for Visual Studio, to make interacting with the SVN repository directly from the IDE easier. However, I don't believe it will work with Visual Studio express edition.

Simucal
Also, not having VisualSVN is merely a minor annoyance. So don't feel the need to spring for the full blown Visual Studio if you don't feel like paying for it right now. I've done some fairly large projects using only TortoiseSVN and it was perfectly fine.
Simucal
+5  A: 

In terms of plugins for visual studio Visual SVN is very good but is not free software. Ankhsvn is your best bet for something like subclipse but for Visual Studio.

stimms
the express versions don't support addins
moogs
+4  A: 

VisualSVN integrates well with VS. However, it's not free, altough it's relatively cheap at $49.

AnkhSVN is your other alternative. It's free and I've heard good things about it, however I personally have not used it.

I don't know if any of these two integrate with Visual C# Express, though.

Franci Penov
I vaguely recall that AnkhSVN once integrated into Visual C# Express. Then they removed that feature because Microsoft got upset because the Express edition isn't supposed to support plugins. So I suppose that means that you won't find anything that exactly suits your requirements.
Whatsit
This story is about TestDriven.net. We didn't try after reading that story.
Bert Huijben
+2  A: 

I use VisualSvn, its the easiest one i have found. I tried AnkhSVN, but wasnt too impressed. VisualSVN does cost ($50), but it seems worth it.

Mike_G
+8  A: 

The "Express" IDEs don't support source control integration, so I think you're going to have to choose between switching IDEs or learning to use an external tool. TortoiseSVN is considered to be the best external tool by far, so I doubt you'll find anything better. I'd just spend a few hours and put the effort into learning Tortoise, it's not particularly difficult, just requires a slight modification of your workflow.

Chad Birch
A: 

I voted up @Simucal's recommendation of TortoiseSVN. I've used it for quite a while now and I like it.

I also use Subclipse, an SVN plugin for Eclipse. And I find that knowing my way around the straight-up command-line version of SVN is helpful too.

(That command-line hyperlink also contains a table of third-party Subversion clients for various platforms.)

JMD
+2  A: 

Try to use #Develop. This is open-source full featured IDE for C# (among others). It has SVN integration build-in. Interface of the #Develop very similar to VS Express.

Mike Chaliy
Before the Visual Studio Express editions this was my favorite free IDE for .net.
metanaito
I think I am having version problems because I have Subclipse installed for Java and installed TortoiseSVN for #develop. When I try to edit a C# class, it says "client is too old to work with working copy" - but TortoiseSVN is newer than Subclipse. What is going on?!
Paul Morrison
Turns out my problem was due to #develop 2.2 does not work with TortoiseSVN 1.5.
Paul Morrison
+1  A: 

I've used VS with Visual SourceSafe integration, and I've used VS with TortoiseSVN in a separate Windows Explorer window. The latter is so much easier to live with it's hard to begin describing it. TortoiseSVN is so straightforward I've never felt the need to figure out how to integrate SVN with VS.

But there are two pretty significant issues about using non-integrated source control.

The first is that when you add a new file to a project, you have to add it to SVN as a separate action. Without VS integration, you can't tell (by looking at Solution Explorer) that you haven't done this yet. This is pretty dangerous.

The second is that importing a project into SVN is really clumsy. There's two ways to do it and they both suck. I'd presume that a decent VS integration would make this a one-button operation.

(How to import a project with TortoiseSVN: Make a copy of your project directory called projectName.import. Delete every file from that directory tree that you don't want source-controlled, like everything in the bin directory. Import it into SVN and then throw away projectName.import. Rename your project directory as projectName.original. Create a new directory called projectName. Check your project out into that directory. Build and test. Once you're comfortable that everything's really in SVN you can throw away projectName.original.)

I've learned to live with both of those problems. Also, since I don't have SVN integration in Eclipse either, it means that I've only had to learn one thing instead of three.

Robert Rossney
+1  A: 

The only benefit I've found for an integrated subversion plug-in is that you're less likely to forget to add new files to the repository. Apart from that, tortoisesvn works really well.

It'm not sure if subclipse does something fancy to get you started, in tortoise, open windows explorer:

  • right-click on a folder->tortoise svn->repository browser
  • enter your repository location and create a new directory for your c# project
  • go back to explorer and create a folder for your working copy
  • right click -> svn checkout, browse to the repository directory you just created
  • make your c# project in that folder and have fun
  • back in explorer, right click the c# files and project files, etc, tortoise svn->add
  • when finished, right click the folder and choose svn commit
  • and you're away

You can also use tortoise svn to create a new blank repository in an empty folder.

Jim T
I'm not sure why adding files is difficult in TortoiseSVN. If you do a commit without adding files first you will be able to see the files not yet added and add them during the commit by checking them off. It becomes a slight issue if you are committing lots of files.
metanaito
True, it's just for the first commit there's a temptation to select everything, even .suo and obj files.And on subsequent commits, noticing that one file out of 50 isn't there can be hard, especially when you view unversioned files and get a load of object files in the list.
Jim T
+2  A: 

With C# Express, you can not have plug-ins so VisualSVN and AnkhSVN are impossible to use.

On Garry blog , there are settings that you can use to have Toolbarmenu and menu added to Visual Studio (including express) to interract with TortoiseSVN without leaving Visual Studio.

Thanks! That sounds really interesting. I will take a look!
Paul Morrison