Closed Bug 976400 Opened 8 years ago Closed 8 years ago

Investigate seemingly incorrect CVS -> git commit

Categories

(Release Engineering :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: catlee, Unassigned)

Details

Flags: needinfo?(ehsan)
$ git log --grep='enable hierarchical'
commit d96517d0dfb27940afdd9f74a201a1d65598ac4e
Author: dbaron%fas.harvard.edu <dbaron%fas.harvard.edu>
Date:   Wed May 17 02:34:35 2006 +0000

    Fix up and enable hierarchical :hover and remove the hacks that made :hover work for anchors without it.  Pass mask rather than pseudo-class to ContentStatesChanged notificatio

commit fc9cdb5c146f47135472b9d3f2a1f53327580188
Author: dbaron%fas.harvard.edu <dbaron%fas.harvard.edu>
Date:   Wed Nov 2 07:35:24 2005 +0000

    Fix up and enable hierarchical :hover and remove the hacks that made :hover work for anchors without it.  Pass mask rather than pseudo-class to ContentStatesChanged notificatio

commit 07103ecbeaee0f1ca4ba3c1bc444ebadb237312d
Author: dbaron%fas.harvard.edu <dbaron%fas.harvard.edu>
Date:   Thu Apr 11 03:49:30 2002 +0000

    Fix up and enable hierarchical :hover and remove the hacks that made :hover work for anchors without it.  Pass mask rather than pseudo-class to ContentStatesChanged notificatio

So during the conversion, this has been split into three commits, presumably because of the timestamp differences I guess.  Note that CVS doesn't have the concept of a commit, so during the git conversion the convertor code looks for changes to different files with the same commit message/author around the same time and organizes them into single git commits.  This process is flaky and these kinds of results are to be expected.
Flags: needinfo?(ehsan)
Chris just pointed my attention to the dates.  They're definitely busted.  :(  They appear correctly in CVS according to bonsai.
What happened here is that the rules we used for in-repository copies of ,v files involved, in the later stages of CVS use, munging the ,v file so that all of the prior commit dates were bumped to the present date, and removing all tags.  (Earlier repo-copies didn't.)

So this commit appears in the repository three times:

 * once with the original (with a lot of duplication of files that were repo-copied under the earlier procedure)
https://github.com/mozilla/gecko-dev/commit/07103ecbeaee0f1ca4ba3c1bc444ebadb237312d

 * twice partially, for two later repo-copies
https://github.com/mozilla/gecko-dev/commit/fc9cdb5c146f47135472b9d3f2a1f53327580188
https://github.com/mozilla/gecko-dev/commit/d96517d0dfb27940afdd9f74a201a1d65598ac4e

The basic problem here is that the import procedure used didn't make any attempt to account for the in-repo copying that we did, and that in order to get an accurate import, it would have needed to do so.

(The older copying just copied the ,v files; the later copying did the munging.  I think it's documented somewhre on wiki.mozilla.org.)
So given that, I think there's little hope of a correct git -> cvs import that can take this into account.

Thanks for the info!
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Component: Tools → General
You need to log in before you can comment on or make changes to this bug.