views:

287

answers:

7

So I've decided it's probably best if I get some Source Control solution going to keep my hard work safe, and to help eradicate bugs between versions.

I'm familiar with SVN as far as checking stuff out, but I have NFI about the committing side of things.

What is a good Source Control solution, keeping in mind that I develop in Visual Studio on Windows? Should I get a hosted solution, or host it myself on my own server (running Windows Server '03)

+7  A: 

If you're just getting started and are looking to self-host, I suggest VisualSVN. It's a lightweight, extremely easy-to-use SVN server, and free. I've used it for small projects at work and home. It includes security, with folder- and file-level ACLs based on local or Windows users.

You may decide later to move to more powerful servers or an externally-hosted solution; you can just dump the repository from VisualSVN with the standard svnadmin tools and load it into something else very easily.

For the client side of things, I use TortoiseSVN and love it, and I understand Ankh has gotten better since last I used it.

Michael Petrotta
I already have TortoiseSVN :D (for keeping my Garry's Mod addons up-to-date)
Charlie Somerville
I figured. I added it just in case...
Michael Petrotta
Thanks for the answer, I've done all that and I've committed my first project! :)
Charlie Somerville
+7  A: 

I'd suggest using git and get Git Extensions for better Windows integration.

objects
A: 

Hi,

We are a small team (seven people) we have been using a hosted solution (hosted-projects.com) for more than one year. It's cheap and has worked very well for us. We use tortoiseSVN for the clients.

The main advantages of a hosted solution are:

  • no need to worry about server setup and maintenance

  • remote hosting means we have a complete and up to date backup of our code on a remote location

  • very fast

tekBlues
A: 

I recently did a team development thing and we just hosted subversion on one of our workstations and it worked... passably. We used visual svn on the server, and tortoiseSVN on all of the clients (and I occasionally connected my macbook using Versions, SVNX, or the command line). Merging is the really hard part... we had a lot of trouble with that (resolved, once again, with some command line skill). I also set up my own subversion server on my linux workstation for personal use, which worked better (merges were smoother, only one developer). Overall, it has been fairly easy and merging is probably the largest problem you'll face.

A: 

If your new to source code then I would recommend you read Eric Sink's series on Source Control. It doesn't really cover distributed source control but it's still a very good primer.

I personally use Perforce. They allow up to two uses for free for home and small business use. It is a little expensive compared to others but there is reasons why companies like Google and Symantec use it. It has ok to good Visual Studio support.

Shane Powell
.... I'm tempted to downvote (for the perforce reference)
hasen j
Why? Someone else suggested GIT, do you vote them down? There are lots of good Source Code Control products. I prefer perforce, is that a crime?
Shane Powell
I use Perforce at work and personally loathe it. It has roughly the same feature set as Subversion, but doesn't scale as well even if you do buy a multi-user license for it. I've spent more time than I like to think about waiting for 'p4 edit' to finish just so I can do something. I'm on here now because I'm waiting for my 'p4 submit' to finish, which seems to be blocked just by other users doing 'p4 sync' : the database files on the server recording who has what synced to their workspace take up almost as much space as our actual data.
araqnid
I find that somewhat strange. I've used perforce on some very big servers with lots of users and I haven't found that to be the case. Server setup may be the issue.
Shane Powell
Perforce is one of the fastest and most scalable systems on the market. I've seen it support thousands of simultaneous users. If it's performing slowly then something is very wrong.
Richard Berg
+2  A: 

Use git.

One workflow that git does really well:

  1. Have an idea for some feature you want to implement
  2. Create a new branch for that feature
  3. Write code, commit like crazy
  4. When you're done implementing, squeeze all the crazy commits into one big patch
  5. Commit that patch against your main branch
  6. Delete the for-that-one-feature branch.

This is wonderful to have. You can have multiple parallel branches for this, and it's really easy.

As an additional feature, if your project goes public and you use git, people who check out your code will have an easy time making their own changes to (their copy of) your code, version-controlled and all, and it'll easy to track upstream at the same time.

If not git, try some other distributed source control system and see if it does good branching and local commits as well.

Jonas Kölker
A: 

I really like hosted solution because often comes with other tools like trac to manage your project timeline and bugs control. I recommend projectlocker or codespaces