[If you are not familiar with the English idiom "When push comes to shove" you can read more here.]
For some time I have been hesitant to start publishing data about usage of Git. You see, when a community changes a tool as fundamental as the SCM it will need to change its processes (to some degree). Of course, this is often the reason why the SCM has been switched. It is also the first reason why it is difficult to compare SVN data from “before” to Git data from “after”. Reason 2 is that the two systems work in very different ways. A commit in a DVCS is very different from a commit in a centralised system. It is probably the “push” that is more comparable. Right? Right??
Let’s take a look at the daily commits for KDEPIM:
KDEPIM switched to Git on 28 January, 2011 (or thereabouts). Before this date the average daily commits was 16 (14 in the month prior), after it drops to 11. I’m sure the KDEPIM community is not crying into its collective beer tonight. Here’s why:
- Human factor: The initial large drop in commit rate could easily be caused by people needing to learn how to use Git properly.
- Process factor: Git allows the user to squash multiple commits into one.
The change of tool will always have human and process impacts. Here I have suggested just one of each; there are many more. But these factors plausibly explain my concern with coming forward with Git data… It is up to me to make it absolutely clear why (or potentially why) the figures change in the way that they do. Whilst the need for education and commit squashing are two factors that might apply to any project, the factors that actually apply can only really be revealed by those directly involved.
So what can we conclude? Two things:
- The impact of the switch to Git can be shown in the measurement of something as simple as daily commits;
- Watching the new trends develop over time is going to be fascinating.