Reputation: 10658
I have been a very avid git user for quite a while now. However I often note that seasoned SVN users seem to have a lot of issues with using git. Now I am looking for resources to make git more available for people who have been used to using SVN for a long time and developed a habit out of the quirks of SVN.
I know there is the git svn crash course, but this does not really give the information I need. While this easily maps the common SVN commands to similar Git commands, people tend to use more complex workflows, which are often not easily mapped just by mapping commands from one tool to the other.
For example a lot of people I know usually tend to keep multiple versions of a versioned software around in different directories, to be able to easily switch between revisions. For me this seems like a kludgy workaround that Git handles easily through a git stash
, git checkout
workflow. Also I have noted that people using SVN tend to think differently about branches. Whereas in SVN all commits from a branches fully belong to that branch (because they concern that directory) in Git there really is not such thing as "a commit from a branch", because each branch will include all commits reachable from that current branch state.
Is there any tutorial, which maps theses concepts, to make Git more accessible to SVN users who are forced to use it?
Upvotes: 13
Views: 3368
Reputation: 1073
There are many tutorials out there but I found this page has nice 1-1 mapping: http://git.or.cz/course/svn.html
Upvotes: 2
Reputation: 18979
We just had a SVN to Git migration at work. One of the most important thing, was to not scare the users. Unfamiliar tools make people uncomfortable. That's why it's essential to make the transition as smooth as possible.
Not all people will advance at the same speed, some might even use Git just as a replacement for SVN. That's not a problem per se. It's more important that those, who are willing to learn more and those who want to use the tool the way, it was designed, get the appropriate support. They will help others to make some progress.
We tried to set up a playground, which was rather useless. Nearly all people, who did not already know Git, did not try out anything. They just want to get their work done. and don't have the time to play...
Still, all in all it was a good success and there are lots of people starting to use advanced features. I wouldn't have dreamt, that people will be working with multiple remotes only two month after the launch, but they are. They are branching and merging like pros, and when they have problems they ask.
To host our repositories we decided to set up an in house Gitorious server. This has some big advantages. First it comes with a nicely designed UI and second it's just Rails. If you know MVC, you can rather easily customize it to your needs.
Upvotes: 5
Reputation: 3140
also coming from SVN, i handled git better after finishing the labs on gitimmersion.com
Upvotes: 2
Reputation: 17419
I think the key difference for someone coming from an SVN mindset is that git respects "check in code" and "share code with team" as distinct actions, where SVN mashes them together in the commit subcommand (and a seasoned SVN user doesn't even realize they're distinct actions -- I didn't). This is what enables the freedom to branch and the option to reorder and squash commits, so understanding that is crucial.
The other thing that really helped me what a description of the repository structure, mainly that heads are just pointers to commit objects.
Upvotes: 2
Reputation: 46514
In my opinion, trying to describe Git using svn terms, or vice versa, will be a futile task. I think the two are fundamentally different.
The best approach, in my opinion, is to tell your users to try and forget what they know about svn and learn Git with an open mind.
Upvotes: 3