Revision Control Systems: As an SCM newbie, should I learn SVN before Git?
-
i never used a version control before and i want to learn /use Git, should i learn SVN before learning Git
-
Answer:
Learning Subversion first may make it harder to learn git because you will expect git to work the way Subversion does, and the conceptual models are incompatible in important (but occasionally subtle) ways. If you are only planning to use git, learn it and don't bother with Subversion. Some people will tell you Subversion is easier than git. That may or may not be true but it's actually impossible to say for sure because it's impossible to tell how much of an SVN-then-git person's confusion comes from git proper and how much comes from subconsciously trying to map SVN's concepts onto git and struggling when they don't quite match. I've seen that happen tons of times. If you have a computer science background, I'd start here: http://eagain.net/articles/git-for-computer-scientists/
Steven Grimm at Quora Visit the source
Other answers
Learn to use SVN if you plan to use SVN. That is all.
Tom Morris
It is interesting to contrast the answers of and , who both end up suggesting that DVCS has major strengths over SVN and its predecessors. However, one says you should never learn SVN (or learn SVN second only if needed), and the other one says you should learn it first so you can really appreciate Git. I say learning SVN is a waste of time until you need to use it. If you become accustomed to SVN, it will make learning a DVCS like Git much harder as your expectations will be so different than reality. Moreover, everything is moving to DVCS, and so there is not much value to picking up SVN unless you are forced to deal with some legacy project that still uses it (additionally, you can use Git to access an SVN repo). Finally, although learning SVN can make it harder to learn Git, learning Git will not be a barrier to learning SVN. You might hate every moment of learning SVN after learning Git first, but you will be able to adjust to the strange way SVN does things. In other words, GIt is more straight forward, and SVN is the exceptional case. It's always easier to learn the straight-forward case and then pick up the exceptional case as an exception... The other way around is trouble. And, to answer , I think learning SVN second will still help you appreciate DVCS. You won't lose anything by learning SVN second. Why put yourself through torture first? Use SVN as a side project after you get used to DVCS as the normal way to do things. Also, if you think Git's error messages are cryptic, then use a different DVCS like Mercurial (hg) or bazaar (bzr) first. It is very easy to go from Mercurial to Git, and it is very easy to go from DVCS to SVN. It's not very easy to go from SVN to DVCS. (for example, mentions in his answer that SVN is easier because you only have "one server" to worry about. This notion of having "servers" is exactly the kind of backward thinking that will make Git hard to understand if you grow comfortable with SVN first. If you learn Git first, you'll realize that there are no servers. There are just opportunities to share changes with people, and sometimes you can arrange how you do that in a way that looks like you have a central repository... but it's not necessary. Only then will you appreciate that SVN has a weird rigid server structure that is totally not necessary. If you start from SVN, you'll have a "server" in mind as your conceptual model of revision control, and that's going to be a problem down the line)
Ted Pavlic
You should start by SVN. The concept of revision control is more easy to understand with subversion. You have less cryptic error messages and it's more easy to have just one server as reference. I try to teach SVN or Git first and most students have better results with Subversion. After a few months they discover limits of SVN and start to learn a DVCS system like Git, Mercurial of Bazaar.
Julien Duponchelle
Related Q & A:
- How do I correctly move a git submodule?Best solution by Stack Overflow
- How can I learn hadoop through projects?Best solution by globalknowledge.com
- What programming languages should I learn for Web development?Best solution by Yahoo! Answers
- Where can I learn Sabre for free?Best solution by Yahoo! Answers
- On what websites can I learn web design?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.