3

I am a student and my uses of source control are mostly academic (HW assignments, 2-4 person projects and so on).
Until now I have been using Subversion hosted in google code, and used the eclipse plugin to manage my repository.

Recently I heard of git, which to my understanding needs to be synced between each two collaborates each time, and something called Mercurial.
So basically my question has 3 parts:
Which source control system is recommended and what benefits does git offer? Is it worth learning it?
Which is a good free host that will support this system?
What is the best tool to manage my repository? Is using the command line better in any way than the Eclipse plugin? or is there some other software that is recommended?

If my question is to vague please comment and I'll be glad to revise it.

2
  • As grenade said, checkout github. Not only is it awesome, but they've got lots of great documentation for noobs. Commented Jan 18, 2011 at 15:31
  • You should checkout git-tower.com Commented Jan 18, 2011 at 16:24

3 Answers 3

6

Git and Mercurial are distrubuted SCMs, meaning there is not central server (in practice people agree on one, but the infrastructure doesn't require it).

It is the way SCMs are going, so yes, worth learning.

For git hosting look at github, for Mercurial, look at Kiln (not free), though there are many free ones as well.

As for asking if command line is better than a plugin/GUI? It depends on how you like to work.

Sign up to request clarification or add additional context in comments.

2 Comments

I'd say that as a student, there's potentially a lot of value in a distributed SCM, not just as a "the way SCMs are going" thing. It's easy to create repositories on a whim, and you can work offline. Huge help when you've got homework projects popping up all the time.
Also, the CLI/plugin/GUI question isn't totally a personal preference. EGit is under active development, but currently doesn't have nearly the feature set that the command-line version does. Documentation is also a lot more CLI-focused. If you do go with EGit, make sure you understand what all those buttons and menu items are doing!
3
  • github is a good free repository for git.
  • bitbucket is a good free repository for mercurial.

I prefer tooling that integrates with my IDE so I recommend that route but many people rave about using the command line for git and how awesome it is. I think they're just more hard core than I want to be.

git and mercurial are similar enough to each other that it makes very little difference which one you choose especially if you are new to DVCS. Choose the one that has tools that work well with your setup.

Comments

1

Use the one that you are the most comfortable with,

  • Git is a proven distributed version control system, branching and merging are cheap, keep track of changes and merge, the only problem is that git is tracking a full project, and working on a directory of the project is difficult.
  • Mercurial is widely used at Google as I heard.

Compared to SVN, - svn is a descendant of CVS and keep most of its structures and fault. - Having 1 point of failure ( central repository ) is somewhat bad. Distributed SCM could also work on a central repository model. - Distibuted SCM keep a repository copy in local. you push and pull to the remote server, allowing you to do a local versioning without disturbing the "central" repository, then allowing you to branch as much as you like. - On central repository model, people are somewhat reluctant to branch and branch then merge (Merge on subversion can be a consuming task). - Trouble with subersion, is that you cannot give per directory access right, it done at the repository level. - Subersion do not keep track of merges.

I use subversion at work and people are often ignorant on how to manage it, distributed SCM reduce the need of an administrator if you don't need a central repository.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.