12

I'm currently researching new source control options for a team of 10 developers. We do .net development in Visual Studio 2008. We currently use VSS for source control.

We are looking for a centralized source control solution(non-distributed), with a nice Visual Studio plugin. My manager has recommended Plastic SCM and I've always heard good things about Subversion. I'm trying to decide if we should adopt Subversion or Plastic SCM.

There isn't much information out there about Plastic SCM (except what they've written) and I was wondering if it would be a good solution. They make it sound as if branching is much simpler.

Subversion on the other hand has a robust, mature community, and it has been thoroughly field tested.

What are the pros and cons to these tools?

Also are there any other tools that you could suggest?

Thanks

jon37
  • 1,349
  • 3
  • 15
  • 29
  • Subversion supports Active Directory authentication, with the Apache AUTH_SSPI module. I don't know if that helps, but we have been using SVN successfully since recently being in the same situation. – John Gietzen Jun 19 '09 at 19:36
  • I didn't think about that but we're absolutely going to need the active directory authentication. Thanks. – jon37 Jun 19 '09 at 19:41
  • 3
    Remember now Plastic is FREE for up to 15 users. – pablo Dec 07 '10 at 22:26
  • 3
    I wonder who pablo works for? – jon37 Dec 13 '10 at 03:30
  • 7
    pablo generally makes it quite clear who he works for, but if anything, I'm impressed that someone from the company is out there actually supporting the product in the community. A shameless plug here and there is perfectly fine in my opinion. – brostbeef Jan 18 '11 at 15:40

8 Answers8

16

I’d like to add this answer for everyone still to make their choice.

I’m developing in C# with VS2008. I’m working in a team of two developers. We used to have no source control (horror), then we used Subversion (okish) and then we switched to Plastic SCM (good).

My Comparison Matrix:
(please note my Windows-user-point-of-view, YMMV)

Pro Plastic:

  • Windows Application -- Nice and intuitive UI
  • Good learning videos (you can learn all you need about two hour’s time)
  • Standard tasks are all very easy to do: switching to another branch, getting an older version of some file, diffs, merges.

Contra Plastic:

  • Costs money (free for open source; Edit (2/2011): there used to be free commercial 2-user licenses There's a free 15-user commercial license. You need to renew it every year, though.)
  • No real server / admin program: I’ve got no idea where exactly on my disk the data is stored; it’s all hidden away from me. Now, how do I backup my repository? The only “solution” I know of is using the client’s replication feature and replicate the repository to your localhost server. (I haven’t done this yet.) [EDIT: Take a look at the comments for a real solution.]

Pro Subversion:

  • Free
  • Open Source
  • Huge user base

Contra Subversion:

  • Subversion can’t really handle file renames. You can work around, but it’s not (yet) a native feature.
  • Things like moving a directory might corrupt your working copy.
  • Tortoise SVN is little more than a façade for the command line svn.exe. For many operations you still need to know the command-line commands and their switches.
  • Tortoise SVN severely slowed down my Windows Explorer right clicks.
  • Merging takes more time when there are conflicts. You get several copies of the same file and then you have to delete all the versions you don’t need (leave Visual Studio for that), or you get conflict indicators put into your code, which make your code uncompilable until you removed them all. In Plastic SCM, on the other hand, the merge operation opens a window similar to WinMerge and you can just click onto blocks of code you need to resolve the conflict.

Hope that helps. If you need any other specific information, please let me know.

Felix

Felix Alcala
  • 2,837
  • 3
  • 27
  • 31
  • 2
    In fact doing back ups with Plastic SCM is very simple: just use the methods you're used to with the backend of choice (SQL Server, MySql, Oracle, Firebird...) In case you're using Firebird: simply go to your server location and backup the .fdb files (databases). Simple! :-P – pablo Mar 30 '10 at 12:15
  • 1
    @Pablo: I didn't specify a backend (or can't remember). I certainly didn't install MySQL or any other database myself. How can I find out which backend Plastic uses by default/at the moment and where it is? Thx. – Felix Alcala Mar 31 '10 at 15:07
  • 5
    by default Plastic ALWAYS uses Firebird. This way you can install it in less than 60 seconds (no need to install anything else). If you're using Windows there won't be database server as such, the plasticd process will have one embedded. Then, by default, the database files (*.plastic.fdb) will be located at the server's install dir. You can put the *.fdb at other location but then you'll have to create a simple db.conf file pointing to the new path. – pablo Apr 02 '10 at 11:01
  • 1
    I believe Tortoise SVN will use WinMerge to help resolve conflicts and handle the conflict files automatically. All you really need to do is use "svn resolve" once you are done editing the file. – Bernard Igiri Jul 13 '11 at 21:35
4

Using VisualSVNServer is an easy way to get Subversion up and running in the Windows environment, and they have a tool that offers Visual Studio Integration for about $50/dev. When I worked for a company in the middle of a switch, the decision was between SVN and Perforce. We ended up going with SVN because I was able to get it, use it, test it, play with it very easily. We could get WebEx presentations of Perforce, but it was hard to learn without buying their book. Also I argued it was a better tool for developers to know because so many open source projects were on it, and it was a more transferable skill. Plastic SCM is not likely to be used if you were to move on to another position.

NerdFury
  • 18,876
  • 5
  • 38
  • 41
3

Take a look at the performance here. It compares both systems under really heavy load (1, 10, 20, 50 and finally 100 concurrent machines against a single server, which is much more than 100 real users, for sure).

pablo
  • 6,392
  • 4
  • 42
  • 62
  • I am sorry, but pointing to a test done by codice themself, doesn't prove much (I know your affiliation to the company, but still) Which company would publish tests in which they performed poorly? – daramarak Jun 29 '12 at 15:11
  • 1
    Sure, the thing is that you can try the test yourself. SVN is sooo slooow that it is very easy to reproduce the results. – pablo Jul 13 '12 at 10:12
2

I in advance asks excuses for my suggestion, but you can use a Distributed Version Control System in a centralized manner. It is just matter of politics inside your development team.

For instance, Mercurial allows pulls and pushs via web service very easily through TortoiseHG.

Or maybe you can try a mix solution, centralized (subversion) server, and a local branching for each developer using git, which I have to say, it's very easy.

For Subversion <-> VStudio, I have used Ankh and I find it very easy to use. For Git <-> VStudio, I have used GitExtensions and the integration is not so good as one can find for example with a Tortoise Shell extension or with Ankh, but you can try it yourself.

Jhonny D. Cano -Leftware-
  • 17,663
  • 14
  • 81
  • 103
  • I really love the idea of distributed source control, my management however isn't impressed. – jon37 Jun 19 '09 at 19:36
  • Jhonny pointed: "Or maybe you can try a mix solution, centralized (subversion) server, and a local branching for each developer using git, which I have to say, it's very easy" -> that's exaclty what you get "by default" with plastic scm – pablo Jun 21 '09 at 01:08
  • I also use AnkhSvn (http://ankhsvn.open.collab.net/) for Subversion <-> Visual Studio integration. It works pretty well, though sometimes I drop into TortoiseSVN (http://tortoisesvn.tigris.org/) if I need to do something complicated. It's nice that the tools can work together. – Chris Apr 02 '10 at 20:42
2

I haven't used Plastic SCM before, but Subversion worked very well for me in the past. If you're not bound to a free solution like SVN, you might consider Team Foundation Server. Beside Version Control, TFS offers additional nice features like work item tracking, integrated reporting ... As you can imagine, the Visual Studio integration is just great :)

Andre Kraemer
  • 2,633
  • 1
  • 17
  • 28
  • How is branching / merging compared to SVN? I'm worried about using another Microsoft source control solution since they got vss so wrong. – jon37 Jun 19 '09 at 19:38
  • 3
    TFS is very expensive, and the source control IMO is very much like VSS. I don't think it's worth the investment. – NerdFury Jun 19 '09 at 19:44
  • 2
    I agree that TFS could be very expensive, which depends on the contracts you have with Microsoft. However I can't share your point that the source control is like VSS. VSS uses a file system approach which may lead to corrupt repositories in large projects, where as TFS uses a SQL Server Database as a backend. Regarding Branching, it worked fine for me. Far better than in VSS. I'd suggest to download the free evaluation Version of TFS which can be found at microsoft.com. It's a complete Virtual PC Image with TFS, Visual Studio, MS Office and some samples included. – Andre Kraemer Jun 19 '09 at 19:51
  • 1
    I guess it is VSS like to me in that it requires the same check out - check in semantics rather than edit - merge semantics. I don't like having to wait for locked files, and I never thought that it worked well to allow multiple people to checkout. This was especially painful when adding files to project files, and needed to wait to get an editable version of the project file. My experience with TFS is as a solo developer on a project, so the need to checkout wasn't a hinderance, but I have bad memories. – NerdFury Jun 22 '09 at 03:51
  • 2
    You're right. The check out - check in can be configured to work as in source safe (lock on check out and get latest version on check out). You can how ever (and that's what I'd advise) allow multiple checkouts without locking any files and merge the changes on check-in. Check-Out on edit is disabled by default. We worked in that way on a project with about 15 devs and it worked great. – Andre Kraemer Jun 22 '09 at 12:49
  • TFS lacks any credible sophistication in branching strategies. SVN is very CVS like and Perforce like, and TFS is more similar to those two dinosaurs than some of the newer, more powerful and elegant solutions such as Accurev, Plastic SCM, or Clearcase UCM. To many of these older version control tools, copying a directory of files is creating a branch, and directories are not themselves versionable elements. – polyglot Oct 03 '09 at 01:26
  • 1
    @Polyglot - WHA??? Are you kidding me? TFS has whatever branching strategy you need, and it does not 'fileystem copy' when you branch. Its actually just maintaining changes between branches in a db like Andre mentioned. I was able to put together a branching and merging strategy for some very complicated SDLC processes, with very little issues in TFS (mostly learning curve). – StingyJack Apr 02 '10 at 20:55
  • After working with SVN and TFS I think that TFS source control is a peace of shit. It has nothing better, or even equal to SVN. The only thing it has - is good integration with other MS products. – Kamarey Aug 23 '11 at 07:01
0

I used GIT, SVN and Plastic (pre SCM 4 version), then to SVN, and now back to Plastic SCM 4. Plastic is not only quicker to checkin/checkout/update, etc, than the others I used, but it has a good looking UI as well as intuitive (for me) navigation and functions. I always ran into corrupt working copies with SVN when I changed branches, etc. Plastic just works for me.

Jasee
  • 27
  • 5
-1

Another alternative for VSS is SourceGear Vault ('vss done right'). Big plus is that it works (unlike VSS).

PlasticSCM seems to be a distributed solution, while svn (and VSS, TFS, ...) are centralized. If you want alternatives for commercial distributed solutions, you may want to have a look at git, mercurial, bazaar.

jeroenh
  • 26,362
  • 10
  • 73
  • 104
-1

I've used SVN for the longest time. I've gotten used to it. Both at the office and on my personal network at home. It worked nice and easy.

I have recently started a new job and in this office we use Plastic. This was my first exposure to this product. I am so blown away with Plastic that on my own server, I've ditched SVN and moved over to Plastic. It is just that good. I will not easily be convinced to go back to SVN. Plastic is perfect. It's free for up to 15 devs. It can be SQL server integrated, so you know exactly where your repository is at all times. It can be hooked up to use AD authentication. The thing I enjoy most about Plastic is it's Branch explorer. It has a GUI that shows all the branches of your current project. In this Branch explorer, you can make child branches from your main branch or merge child branches back into your main branch. This was well thought out.

Plastic IMHO is a dream come true. Pablo knows his stuff!