Till date I have used many version control systems with widely ranging usage periods. There are a few which I would like to try out in the future, but that would happen when I start caring more about my VCS than the code.
The first VCS I used was SourceSafe for a very short duration, then Team Foundation. The real taste of VCS was from subversion. Then I moved to git and bzr and of late used Rational Clearcase
SourceSafe and Team Foundation
I got the pleasure of using SourceSafe once when I had to get a few files. I did it only two times as far as I remember. It was for getting some legacy code for reference as far as I can remember. Now as people who have to deal with it call it a PAIN, so I am lucky to have never dealt with it again.
Team Foundation this was my first real source control system on which I laid my hands on. I still remember the shelving capabilities and a few more features. Anyway not interested anymore.
This was the first version control system which I used for learning. Even though it was centralized version control system, I still found it superior to TFS (probably I learnt what it was or I never tried our TFS properly). A reason why I was able to learn it was it was simpler than its brothers which were of distributed nature. Still branching is one thing which I was never able to understand properly using svn.
Last year 5 of subversion developers met and decided on the future of their baby. They came to the conclusion that by somehow putting themselves in DVCS planet would be useless. They have a place of their own. I still see subversion having the biggest foothold in corporate sector amongst all the open-source VCS/DVCS
Probably the (or one of the) crappiest VCS/DVCS (no clue where it fits in) I have ever used till date. Just put some 20 files, each of 300 lines and hit Check-in, go for coffee, return and find that the check-in hasn’t completed. Okay fine, I exaggerated. Whatever be the case, Clearcase is alive just because it has IBM behind it and then know how to stuff their crap on enterprise sector. (Lotus Notes anyone?)
It is said that Clearcase handles binary files better than other VCS. I can find very limited use-cases for this feature. What is the advantage when it cannot handle regular text files properly?
Sadly, Clearcase also has a place of it’s own.
No experience till date. Used it once when I wanted the latest code of django-piston. It is used by Python (don’t contribute), Mozilla(don’t contribute there), OpenOffice (no interest in Office Suits). This sums up my experience of hg, so it’s better to keep my mouth shut on something I never used rather than quoting from external sources.
Git is fast. Git is lovely. Git is wonderful. As people say “Git won the DVCS wars in 2008 and left every other DVCS high and dry”. It’s branching and merging awesomeness is unmatched. It is Fast. To me, git became so widespread due to many reasons and one of the very important one is – github. It was because of github, most of the people got a place to host their projects and share it with their friends. It is a social network for programmers.
So as powerful git is, it comes at a price. It is pretty tough to understand. If you never had any experience with any version control system, you might need to put in extra effort. The concept that multiple branches are contained in the same repository together and the concept of remotes had made me dizzy when I started using git. Till date I keep on telling people that git tracks changes and not files. This is apparently visible when you find your file in both the list of “Changes to be committed” and “Changed but not updated”.
I always held the opinion that git is a spaceship – Incredibly tough to control for people who don’t know what to do. Once you learn how to control it, its a pretty smooth journey.
So now asking the same question for git?Does it have it’s place. Yawn! Isn’t the answer obvious?
These days I am spending most of my time on Bazaar (next is Git as usual). The initial impressions are the it is slow (due to additional runtime costs?) It has it’s own share of problems like slowness etc which everyone talks about. You will find a lot of people using it as a punching bag. Google for it, it is useless to rehash the old thing again.
I am going to talk a bit on the good sides of Bazaar. First it has a lot of good UI tools. I mean Bazaar Explorer is really great when compared to any other Git UI tools. I know most power users like command-line, but I use Bazaar Explorer to commit as I keep a diff and commit window open side by side, look at the changes and write the commit messages. I think many more newcomers might find easier to adopt bazaar since it has better UI tools. For Git, gitk looks pathetic, giggle looks fine, but is still behind, only gitg is of the quality I expected. Still gitg can be improved a lot.
Second advantage that bazaar got is that it is easier to use. I have taught bazaar to a few of my friends and they were pretty quick to pick it up. I found that bzr adjusts better to my workflow. Since in bazaar every branch rests in a separate directory, I have found less head-banging amongst the developers.
I found that a lot of advantages of bazaar are tied with it’s launchpad integration. I have never used it outside launchpad. It would be great if someone using it on GNU Savannah might explain their experience.
We in Zeitgeist development use bazaar a lot since it is hosted on Launchpad. Me and Federico are the two people who know git pretty well (Federico is the champ). Since zeitgeist alone is nothing more than a white elephant, integration of zeitgeist in applications leads us to use git also when sending patches. There are cases when “I have many changes in the source but git diff isn’t showing anything”. Probably git has too much power and sometimes it can lead to panic. It takes time to learn and utilize the full power of git.
I still find bazaar to be a great DVCS for people who don’t have much experience using a Version control system or are not so much technical. The target audience can probably include artists too. This is why I say “Bazaar has it’s own place and trying to compete with git is useless“.
One of my close friend told me – DVCS is religion, never talk about it publicly. You invite wrath.