Archive for December, 2011

Why use Git?

We use SVN at work, and I use git for my side projects now. Why?

For my side projects it’s a lot easier to start a new project with version control in git than using subversion at work. At work I would need to get a repository created, permissions assigned, the initial folder structure created, do a svn checkout, then add my stuff and commit. In git, everything involving other people listed previously can be done later when the need to share comes. I simply need to create a repository in the directory where I’m already working, and commit my files.

Also, git makes it much easier to decide “I’m not done with this feature, but I need to work on a bugfix somewhere else right now and later come back to this” than subversion does. In subversion I would need to commit my incomplete code to the central repository, then probably switch back to trunk to make the bugfix, test and commit, then I can switch back. I would be taking a very similar approach in git, but my incomplete changes aren’t subjected upon other developers, and making the change is instant.

These aren’t really reasons enough for me to push my work to switch to git, and we would likely run into some of the problems git has.

  • Multiple versions of large files can make a full checkout large
  • Graphical git tools are not as mature as SVN tools. (I use Git Extensions on windows, the command-line git, github and a ssh to a linux box)
  • Distributed source control is a lot of effort to learn and understand

Perhaps I’ll have more eloquent things to say about distributed source control after reading Version Control by Example

Leave a comment