How about changing Make_Date to be something like this?
char *
Make_Date (rawdate)
char *rawdate;
{
time_t unixtime;
! if (strncmp(rawdate, "file:", 5) == 0)) {
! struct stat sb;
! unixtime = stat(rawdate + 6, &sb) < 0 ? (time_t)-1 :
sb.st_mtime;
! }
! else
! unixtime = get_date (rawdate, (struct timeb *) NULL);
if (unixtime == (time_t) - 1)
error (1, 0, "Can't parse date/time: %s", rawdate);
return date_from_time_t (unixtime);
}
I think this would make merging in/out among branches easier
to handle. I could use fewer tags and instead do something like
touch .now
update -jHEAD:file:.last -jHEAD:file:.now && \
mv .new .last
(I think I have it right.)
I think this is also likely to be more atomic.
Comments?
/r$