Open Bug 1466948 Opened 6 years ago Updated 4 years ago

Non-monotonous committer dates mess up gecko-dev log order

Categories

(Developer Services :: General, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

People

(Reporter: heftig, Unassigned)

Details

The commits in the repo at https://github.com/mozilla/gecko-dev have the committer date set identical to the author date. This is a problem because changesets are often authored earlier than their parents.

For its default ordering, git-log assumes that the committer dates increase monotonously through the commit graph. When this is violated, git-log can order a parent commit before its children.

Especially "git log gfx/webrender" misorders a lot. This has caused me to misidentify the currently merged WR revision.

git log --date-order fixes up the order (the manpage mentions that any of the order options "Show no parents before all of its children are shown") but this is much slower than the default ordering.

To fix this, the hg->git export should use the current system time for the committer date when crafting a commit object, as git normally does. The author date does not need to be touched.
While we may change this behavior for gecko-dev, I think Git's default behavior of `git log` not respecting topological order by default is silly and someone should start a discussion on the Git mailing list to see if the default can be changed.
Hmm, I doubt it's as simple as changing the default. The speed difference is massive. "git log -1 | cat" takes about 2 ms without and *4.1 seconds* with --date-order.

Moving to General for (hopefully) better visibility.

Component: Git → General
You need to log in before you can comment on or make changes to this bug.