One drawback of these schemes is that commit messages cannot be edited afterward ("what was written by a pen, cannot be taken out with an axe.")
Maybe it would be better to commit changelog entries into special files (one per component, to minimize the probability of conflicts, or per group of components, or even per developer)?