Learning version control for a college freshman?

Why create project documents from scratch when you can have an entire suite of tried and tested templates and guides available for you at the click of a button? Get it now!

If you're learning version control systems, you would definitely do well to consider one of the newer "distributed" version control systems such as Git or Mercurial By limiting your scope to the previous generation of tools as you mentioned, you will be missing out on what (some) people are really using today.

If you're learning version control systems, you would definitely do well to consider one of the newer "distributed" version control systems such as Git or Mercurial. By limiting your scope to the previous generation of tools as you mentioned, you will be missing out on what (some) people are really using today. For learning a system, I probably wouldn't recommend choosing a commercial offering.

You will get far better support and documentation, for free, with an open source solution.

If those are your only options, definitely SVN. That's the one (from that list) that real people use in the wild. Honestly, though, learn a DVCS.

Git, Mercurial, darcs, one of them.

If you're going to be the only one on a project, definitely you should check out SVN. Get Subclipse, an Eclipse plugin for Subversion, and get used to that. Then, move on to other version control systems once you feel comfortable.

I'd like to second (or third) those that suggested Git or Mercurial (or Bazaar). Distributed version control systems aren't just good for projects with multiple contributors; I use Git for any and all projects I start, even if they're just throw-aways. Basically, your development folder is your repository - It's portable, and it's easy to add more contributors and move to a more traditional centralized workflow later on.

I recommend Git especially because it has a bit of a steep learning curve, but it has taught me so much about project management, revision control, how to merge and patch files, how to read 'diff' output, etc. It really lets you get down to the fine grained details of version control.

You might find Perforce's whitepapers worth reading, for example gh-level Best Practices in Software Configuration Management.

SVN is very easy to learn. For those people who do use Windows, the GUI version is great. Even if you are running Linux, I would still suggest learning it because it is widely used in places such as Google Code, Python, Wordpress, etc...

Bazaar is absolutely awesome for single-person, serverless development. It takes an entire five minutes to set up, and it's working immediately. It has the power of large VCS's ... but it's easy enough to use on your own.

I've heard Git and Mercurial are right along the same lines ... but I've a=only used Bzr.

I'd recommend Subversion, simply because of its pervasiveness in open source projects. There's definitely a lot of opportunity to put your Subversion knowledge to use in open source projects, and if you do, you'll learn a lot about coding, working as a team, and about using a VCS properly in a team (which is half of learning to use a VCS, and is the hard part because you can't learn it very well on your own). Fewer open source projects use proprietary VCSs, which means you'll get less of an opportunity to use them in the real world unless you're working specifically with friends or as a job.

I haven't used the other two you mentioned, but I have no complaints about Subversion, it's quite straight-forward to use. I'd also like to recommend a distributed VCS, such as git. With a distributed VCS, since every participant in a project has a complete copy of the source repository, and has complete control over their own copy, it means that you're given greater flexibility to use the VCS capabilities.

You'll find that you have the freedom to commit as often as you want, and create new branches whenever you want, which is great when you're making changes to code and you want the ability to go back to an old version if necessary. A distributed VCS lets you use the VCS as a tool to help your coding, rather than simply as a way of storing and sharing your code with others. It's also very easy to set up a new repository in a distributed VCS.

With git you just run git init and it'll set up version control in the current directory. How easy is that?

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions