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$


Reply via email to