Friday, July 5, 2013

Do you really need to migrate SVN to Git ?

Git is not better or worse, it's just different. SVN is simple and easy to learn. Git is fast but complex.


Git is a distributed version control and source code management (SCM) system .Initially designed and developed by Linus Torvalds for Linux kernel development.Torvalds has quipped about the name git, which is British English slang roughly equivalent to "unpleasant person". Torvalds said: "I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'.The man page describes git as "the stupid content tracker".

In 2002, the Linux kernel project began using a proprietary DVCS system called BitKeeper.In 2005, the relationship between the community that developed the Linux kernel and the commercial company that developed BitKeeper broke down, and the tool’s free-of-charge status was revoked. This prompted the Linux development community (and in particular Linus Torvalds, the creator of Linux) to develop their own tool based on some of the lessons they learned while using BitKeeper. Some of the goals of the new system were as follows:

  • Speed
  • Simple design
  • Strong support for non-linear development (thousands of parallel branches)
  • Fully distributed
  • Able to handle large projects like the Linux kernel efficiently (speed and data size)
The development of Git began on 3 April 2005 and Torvalds achieved his performance goals on 29 April.

Git is a distributed version control system. So what does “distributed” or "decentralized" actually mean?  Your local copy is a repository,This means that you can do commits, diffs, logs, branches, merges, file annotation and more – entirely offline, off VPN and generally instantly.
This looks good at first, but just keep in mind the added complexity to this approach. SVN has the advantage that it's MUCH simpler to learn.

Git has the advantage that it's MUCH better suited if some developers are not always connected to the master repository. Also, it's much faster than SVN. And from what I hear, branching and merging support is a lot better.Git is perfectly suited for Open Source projects: Just Fork it, commit your changes to your own Fork, and then ask the original project maintainer to pull your changes. With Git, this just works. Really, try it on Github.

Anyway Git is not better or worse, it's just different. SVN is simple and easy to lean.