Jeff King <peff@xxxxxxxx> writes: > On Sat, Jul 31, 2010 at 01:07:03AM -0500, Jonathan Nieder wrote: > >> > The third one is where we start defaulting things to "assume no more >> > than 1 day of clock skew by default", which can cause incorrect answers >> > in the face of skew. >> >> I think the default should be something that (just barely) works >> correctly for linux-2.6.git. > > I am tempted by that (and it is why I made the fourth patch to actually > calculate the worst skew). But my concern is that there are projects > with even worse skew. Maybe that is unfounded. > >> > The fourth is just an illustrative patch for per-repo skew detection. >> >> I have been hoping for a chance to look these over, time hasn’t come my >> way yet. Sorry, but I am right in the middle of phisically moving, so my weekend and evening git time has been nil recently. > It just a git-skew program to calculate the skew, but doesn't do > anything fancy like detect-on-gc. However, it would be nice to have > somebody sanity check the algorithm. Looking at it again, I think it > might actually miss some skew if the skewed commit can be reached in > multiple ways. > >> Additional things to do (this is mostly a note to myself): >> >> - refuse to commit with a timestamp long before any parent > > Agreed. You need to be careful here, though. What if you pulled from somebody whose clock is set grossly in the future? >> - check slop and warn about it in fsck (maybe your patch does this >> already) > > No, it doesn't, but it is something we should probably do. I wonder if we can make fsck to notice a commit with a wrong timestamp (i.e. older than some of its parents) and make a note of it (hopefully they are miniscule minority)---then during the revision traversal when we hit such a commit, we perhaps ignore its timestamp (pretending as if its timestamp is one of its children or parent---I haven't thought about the details, but the note fsck leaves can record what adjusted timestamp should be used) to fix the issue? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html