
Where I come from we always squash. More detailed history is preserved in the code review tool (which keeps a snapshot every time you bounce it back to the reviewer). Looking at my own sub-commits when I'm working on a complex feature or bug fix, they are often checkpoints with no particular significance except that the code is syntactically correct, and a common reason for doing a sub-commit is when I've got to attend to something else (e.g. a meeting).
On Thu, Apr 2, 2015 at 6:31 AM, Barry Warsaw <barry@python.org> wrote:
On Apr 02, 2015, at 12:06 PM, Jason R. Coombs wrote:
The way I see it, a squash of history or massive patch file loses history. It loses details about the thought process of the implementer. It masks mistakes and obscures motivations. It also masks decisions made in the merge operation, further hiding potential problems.
In general I agree. Coming from bzr, it's very rare that merges get rebased first, but bzr has a strong "mainline-of-development" view that tends to make squash-before-merge unnecessary. diffs, bisects, logs, etc generally follow first-parents by default so you don't see all the subcommits, unless you want to, which sometimes you do.
git doesn't really follow this tradition (although some commands have an option to follow first parents). Not sure about hg.
Cheers, -Barry
python-committers mailing list python-committers@python.org https://mail.python.org/mailman/listinfo/python-committers
-- --Guido van Rossum (python.org/~guido)