I have toyed with version control systems for years now, seeking a way to have a single process that can accommodate the way I need to work with version control for different projects and applications. I have done my time with sccs, CVS, SVN, ClearCase, and so on. I've also had a brief affair with bazaar. But so far I think I've found the one to settle down with... and that is git.
My requirements are pretty simple. As a developer, I want simple things to be simple and hard things to be possible. I want to work with SVN because that's what everyone usually uses. But I want the ability to commit and revert locally before sending it all to the central repository. I also want to check it all in at once... there's no reason to check in the entire history of my experiments. What I check into the the central repo should be a clean change. My version control should do it's job and stay out of the way while exposing enough features to me that I can make up for mistakes and share my code efficiently.
As an admin, I want the freedom to be able to pick exactly what goes into a deployment branch. If feature a, b, and c were planned for a release but c is lagging behind and won't make it, I want the ability to just get a and b. Git gives me that fairly easily. It also allows me to make up for the shortcomings of other version control systems. For instance, the cherry pick feature allows me to pick up individual commits and pull them into another branch. Git makes working with branches very simple and while I'm not terribly proficient with it yet(i.e. I still have to do a lot of google searching to get what I want), I have yet to run into a way that I want to manage my files that I could not do in git.
As an end user, and this really seals the deal, I have a need that I've always wanted to manage with version control and that is, store other data... OpenOffice documents, notes, etc... the stuff that goes in your "Documents" directory. I can also do that with git and the file compression makes it easy to put my documents on a shared drive so I have it on all my machines, it's always backed up, always available, and always up to date.
In short, if you're thinking of evaluating version control systems, I suggest trying git as your first option. You may end up trying out others but my guess is you'll like git enough for it to be your vcs of choice as well.
No comments:
Post a Comment