How do I migrate a flat svn repo to git repo?

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

Was this solution helpful to you?

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:

Just Added Q & A:

Find solution

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.