Shawn Pearce <spearce@xxxxxxxxxxx> writes: > Extended sha1 expressions may now include date specifications > which indicate a point in time within the local repository's > history. If the ref indicated to the left of '@' has a log in > $GIT_DIR/logs/<ref> then the value of the ref at the time indicated > by the specification is obtained from the ref's log. This does not allow '2006-05-17 00:00:00' as the timespec, and the documentation carefully avoids giving that example, but I think it is better to spell that limitation out. > +* A suffix '@' followed by a date specification such as 'yesterday' > + (24 hours ago) or '1 month 2 weeks 3 days 1 hour 1 second ago' > + to specify the value of the ref at a prior point in time. > + This suffix may only be used immediately following a ref name > + and the ref must have an existing log ($GIT_DIR/logs/<ref>). + fprintf(stderr, "warning: Log %s only goes back to %s.\n", + logfile, show_rfc2822_date(date, tz)); + return 0; I am not sure about this part. If the oldest log entry was 3 hours ago, the second oldest 2 hours ago, we can tell during that one hour period the ref was at that point. If the user asked "ref as of four hours ago", and if the oldest log entry had old SHA1 that is not 0{40} (because the log was not enabled before that record), it might make more sense to give that back. Also I wonder how much complexity would we suffer and how much efficiency would we gain if we binary search the logdata (the committer info is variable length, so you would need to resync in each step). - : 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