Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deciding on source control software [closed]

I currently use Perforce locally on my computer at home and on my computer at work, and I am very happy with it. But I want to share the SCM Love with my co-workers, and we are about to (maybe) add a third developer. With the inclusion of a third person, we can't continue to use the free version of Perforce. I am not adverse to paying, but $900 a seat is too steep for the company I am working at.

Now, I know there is a strong following for SVN here on StackOverflow, and I respect that. But when I looked into it previously, I did not care for certain aspects. For instance in Perforce, if I try to check in a file that needs to be synched or merged, it will prompt me to do so before checking in, and I get a visual tool to control the merging. IIRC, in SVN, when you check in files it will automatically merge for you which may not have quite the same consequences that you are expecting. I freely admit I may be remembering this incorrectly, though.

Also, I seem to recall that SVN is folder-based and not file-based? This could be really scary in my current work environment where I have inherited some apps with no folder structure.

And, of course, it absolutely has to plugin to Visual Studio 2008.

Given those requirements, would you still recommend SVN or would you recommend another product?

like image 495
Peter Lange Avatar asked Dec 09 '22 20:12

Peter Lange


2 Answers

In Subversion you don't merge locally when you commit - you merge locally when you update. (There's a server-side merge when you commit, but that's not the same thing.) However, you have to be up-to-date before you can commit. It's a subtle but important distinction.

Subversion will merge for you when it feels confident in the change, but will leave appropriate conflicts alone to be merged manually. I haven't seen many bad merges performed automatically.

And yes, I'd still recommend Subversion if you need VS support (for which I'd recommend VisualSVN, personally - not free, but very cheap). I like Git, but it doesn't have good VS integration that I'm aware of.

like image 92
Jon Skeet Avatar answered Dec 21 '22 17:12

Jon Skeet


I'm a long-time Perforce user and absolutely love it, but I can appreciate that the licensing fees might be a bit too much for a small company.

As I see it, the main reasons for using Perforce are:

  • Mature merge tracking. SVN isn't quite there yet.
  • Superb support team (I seem to always get replies within the hour or so)
  • Speed.

Having said that, I think that SVN would be the easy way to go if you are willing to lessen your expectations a bit in the above areas, at least for the time being. I'll probably get flamed because of that statement, but so be it. You'll just have to decide what you are willing to pay in terms of time vs money - if you are a heavy user of branching and merging it just might be that the Perforce branch/merge capabilities will pay off.

Another thing to consider if you are developing OSS is that Perforce actually offers free licensing for Open Source development.

like image 34
rjnilsson Avatar answered Dec 21 '22 17:12

rjnilsson