GIT vs SVN
Over the last few years, I've really taken to using version control for as many of my projects as possible. This includes more than just source code. Climate model configurations, unix /etc directories, writing projects, presentation work, etc have benefitted from using version control. When I haven't used version control, I've lost track of files and I made serious mistakes.
These days, I'm suffering from a wealth of options for version control. Originally, I did all my work in CVS. When subversion (SVN) was released, I quickly shifted my repositories and never looked back. However, many more version control systems have appeared and use radically different models for source control. CVS and SVN use a central repository from which everyone obtains their files and commits their code. The new thing is distributed repositories. That is, there might be a canonical repository, but the repository people use on a day to day basis may be somewhere else, like their own machine. The practical upshot is that you're not dependent the network for committing; you can do it locally. So, if you work on an airplane for example, you can still have the benefits of version control while you work.
I've begun using GIT for some of my work. Many of the concepts of version control are very different than for CVS or SVN, so the transition isn't the most straightforward. However, to give it a go, I used GIT to do versioning for my 2008 AAPG poster session. For this kind of work, I don't have to use most of the features of version control, but it helps keep me from generating dozens of versions of the poster on my system. As such, GIT worked great. The files are large and the commits are very quick. The overall experience was quite good. After a little more testing, I'll likely transition all of my writing/presentation work over to GIT.
GIT seems to have potential for climate model configurations as well since quick branching, and distributed nature could be quite helpful. However, using SVN, I keep on my model configurations together as one repository. In GIT, I'd probably would have to have separate repositories for model configuration families.
GIT also will likely replace SVN for my source code. But that will take a bit more testing before I start using it widely.
SVN, however, will remain in place for many of my projects. I don't see any version control system as perfect and SVN is still a very good system. Furthermore, git support on windows (when I do windows work) is limited.

0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home