Github user hmcl commented on the issue:
https://github.com/apache/storm/pull/2512
@erikdw @srdo Thanks for checking in with me. I was off for the last few
days and hence just getting back into this, although a bit too late because the
patch just got merged before I got the chance to respond.
@erikdw the fundamental reason behind squashing all the commits is sanity.
The main challenge when the branches diverge is to track down what happened.
The same happens when cherry-picking changes across branches. In Storm this is
very hard because Storm's Git log does not have a wellâ defined structure,
does not have one commit per JIRA, and contributors don't always squash their
commits. As an illustration I am adding a the output of "git log" for Storm,
Kafka, Spark, Hbase, Flink, and Apex. The difference is notorious. Every other
project has a clean, consistent, Git log, which makes it very easy to
understand and track down what happened. Furthermore, it makes it also very
easy to write git hooks to automate all sorts of tasks to merge and track down
what happens cross branches, for example, helping users that have their own
private distribution which gets synced with Apache from time to time (I face
such tasks periodically and understand how much easier it would be if had
a clean git log).
One could argue one way or another. However, a fact is that all of the
aforementioned mainstream Apache projects follow one commit per JIRA (with the
exception of having perhaps a consistent token such as MINOR), and commits
always squashed. In my opinion we should do so as well with absolutely no
exceptions. The extra effort to do this is minimal, and the benefits are
immense. I have proposed this a few times before, but for some reason it has
never been agreed upon or even warranted a lengthy discussion (which honestly
is hard for me to understand why).

---