Git love

Once upon a time, back in the days of my youth, I played around with CVS, the Concurrent Versions System. I know, I know: ew. I soon gave up.

Revision control has come a long way since then. CVS started giving ground to Subversion, commercial systems such as BitKeeper became more popular, and I stayed out of it, until now. Enter git.

Git was created by Linus Torvalds, the guy that started Linux, to solve his source control woes. I think it does so ably and elegantly.

CVS and Subversion both use the standard client-server model, where a central server holds all of the current code. Developers check out code, make changes, and commit the code back to the central server. If one developer is working on a file, others can’t edit it until s/he checks it back in.

Git, on the other hand, uses the distributed model that has no central server. Instead, you have your repository and everyone else has theirs. This means that everyone is maintaining a branch of the source code. In fact, most people will be maintaining multiple branches. You might have “stable”, “development”, “experimental”, “dangerous”, and “something-else-entirely”. Git makes branching and merging as easy as possible. This is where the love comes from.

I’m maintaining my own branch of BioRuby, so I’ll be keeping one branch sync’ed to their CVS repository and another branch (or two or three) that has my own changes. When they release a new BioRuby version, I’ll merge their changes into my branches. That’s the plan, at least. I’ll let you know how it goes.

Leave a Reply

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: