upvote
Why make this change at all? Why do it this way? What would have been the next best way, and why not that? What important assumptions justify this? What's next for this? etc
reply
I like the Git rule of thumb. If it's too long -- it's probably not a single commit.
reply
deleted
reply
To stay concise, I think bullet trees are the best. I've never had to make exceptions to this format.

Top level groups high-level concerns (optional). Below that (required) are short distillations of those concerns answering "why". Below that are descriptions of "what" was/wasn't done. A final optional level digs into deeper implementation detail.

The vast majority of my bullet trees are just those two required levels. Each commit message is rarely more than 10 or 15 lines long, and people really appreciate them. I appreciate them too since I'm the most likely to read them.

reply
Got an example of what you mean?
reply