views:

426

answers:

16

Due to staff shrinkage I am now the sole software developer at a small startup company.

Inexplicably the previous senior developer never did countenance the use of use of version control (even free ones) while he was there [sigh]. Simply being able to maintain historical and version information on source-controlled tasks would have saved huge amounts of time.

I have since managed to successfully convince the Powers That Be that some kind of version control would be a good thing and save us a lot of time, money and brain damage in the long term, even if there is only one developer at present. They are willing to provide reasonable resources for this.

My question is what make of source control software would you recommend for somebody in my situation?

I have used CVS and Telelogic's Synergy with previous employers, the latter I found pretty good, but is probably quite expensive. I know there are good free ones out there, but ideally I would like something that includes some kind of graphical representation of the source code history.

+20  A: 

I think you should try TortoiseSVN, it is a very user friendly tool and it's free. I don't know what kind of graphical display of history you expect, but there's a good blame viewer, good difference viewer and the historical log of changes is nice as well in my opinion.

Roman Plášil
Agree. I currently use this at a small company and it's very easy to use.
Ian Devlin
This implies having a Subversion repository (just to make it blatantly obvious).
Vinko Vrsalovic
+1  A: 

Subversion on Apache is totally free.

You can find some graphical viewers here.

Dana Robinson
You don't need Apache to run subversion, you can use it's own protocol instead of WebDAV. It's certainly a comfortable option.
Vinko Vrsalovic
I think many of the graphical viewers require a web browser, which is why I mentioned Apache.
Dana Robinson
+4  A: 

At least git and Subversion have tools supporting graph representation of the history. They are both very good on their model, git's being distributed and SVN's centralized.

Last time I checked, git wasn't very windows friendly, so that might influence your decision. (Please correct me if it now is)

And they're both free as in speech (and beer).

PS: http://stackoverflow.com/questions/111031/comparison-between-centralized-and-distributed-version-control-systems

Vinko Vrsalovic
they claim that msysgit (http://code.google.com/p/msysgit/) should work just fine on a Windows without the need of Cygwin. Unfortunatly, I can't corroborate this, as I've used git only on Linux/OSX.
Henrik Paul
I use git on windows (via github) with no problems. mysisgit works very well if you aren't allergic to the command line. The GUI is awful, though.
Dana Robinson
+11  A: 

SVN + Tortoise

annakata
+1  A: 

Maybe you should tell a little more about your actual requirements. A graphical history is available for most systems, including the open source ones. You get it for CVS/CVSNT via TortoiseCVS or WinCvs or ViewVC and you get it for SVN via TortoiseSVN or ViewVC.

SVN surely seems the one with the most momentum at the moment though I myself still prefer CVSNT (though that preference is slowly dwindling).

Oliver Giesen
+2  A: 

If they are willing to put in a small server box for it then put SVN Server and use TortoiseSVN and/or Ankhsvn for VS plug needs. I've not had a problem with it since starting to use it a few months back.

Hope this helps :-)

WestDiscGolf
You don't even need a server if you're the only developer. You can have a SVN repository in a directory and access it directly, if you like. It's easy to move that to a server later on as well. I use that a lot for some small personal projects.
Joachim Sauer
True - but if your dev machine goes down then the source control has gone too. If its on a separate server then at least you can get your repositories backed up with the rest of the servers :-)
WestDiscGolf
+1  A: 

As already stated there is no need to spend money on Source Control software. There are several good free/open source options. It depends a bit on which development platform you use, without knowing that I don't have any other suggestions than the ones you already got.

sindre j
+1  A: 

Git and Subversion are the two big free ones.

Subversion has some smart ideas, but can be thought of as "CVS improved" (though it is a completely new product).

Git is rethought from the ground up for big, distributed development communities. It doesn't sound like that's you. Not to say that you can't use Git, just that its main advantages aren't aimed at you.

All modern VCSs are client-server. The server doesn't have a GUI, and doesn't care what you do with its output. That is - GUIs and visualisations are not a feature of the server.

There are loads of tools out there for interacting with an Subversion server: explore it in a Web browser, work with it from a command line, work with it inside Eclipse, work with it from Windows Explorer, explore graphical diffs, etc.

If the visualisation you're looking for is something other people want, then it's bound to exist. Probably in a Web interface.

slim
+2  A: 

Subversion (VCS Server), TortoiseSVN (Client) and Trac (Issuetracker and "graphical representation").

Everything well tested/used and totally free.

Karsten
+2  A: 

If you would like to have a distributed VCS, try Mercurial (Hg). It also has a nice Windows GUI TortoiseHg (unlike other modern distributed VCS, like git, darcs or bzr). Hg is much easier to learn and use than git. It is also suitable for huge projects, e.g. Mozilla, OpenJDK (Java), OpenSolaris all use Hg, but is equally good for small mini-projects.

Go with Subversion if you need to track a lot of binary files. Its GUI is named TortoiseSVN

Trac is a very good web interface which works with both. You can use commercial trac hosting services like Assembla.

Git lacks good GUI support and is known to be slower in Windows (I didn't try though). But it is good for certain development models (“Linux”-like).

jetxee
+2  A: 

I use SourceGear Vault personally and find it to be an excellent product; I believe it's even free to use for a single developer.

The licensing fees are pretty reasonable if you do need to expand though.

RSlaughter
+1  A: 

Check out Transactor Code Agent. It's mainly about local version history for individual developers, then it is about source control (source control is about managing teams), but given that you are the only developer it might be perfect for you.

Disclaimer:

I am the CEO of the company that makes the software, so you should weight my advice accordingly.

Scott Wisniewski
+1  A: 

SVN and the powerful SmartSVN client.

driAn
+5  A: 

Go with VisualSVN Server assuming your environment is Windows, it will take couple of minutes install and be ready.

Then use TortoiseSVN, overall cost 0. Can't be cheaper than this :)

dr. evil
Have recently got this up-and-running and does the trick. Many thanks.
AndyUK
I started using this server about a year ago and managing my project repos went from "doable" to "wow, this is really easy." :)
280Z28
+2  A: 

We've used Sourcegear Vault for 4 years now and it's good.

  • SQL Server back end
  • About £150.
pro
A: 

If you're a Microsoft shop take a look at

http://www.dynamsoft.com

They do a hosted solution, or you can buy the server.

  • 7meg, 1 user (good for a single developer) - Free
  • $14 per user, 25meg (unlimited users)
  • $28 per user, 50 meg (unlimited users)

The prices are per month, but the nice thing about a hosted solution is they handle your backups.

Chris S