bug-rcs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rcs-5.9.4: t810 test failed


From: Thien-Thi Nguyen
Subject: Re: rcs-5.9.4: t810 test failed
Date: Fri, 27 Oct 2017 21:07:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

() Xose Vazquez Perez <address@hidden>
() Thu, 26 Oct 2017 19:26:45 +0200

   $ stat x
   Modify: 2017-10-26 19:18:31.309078104 +0200

   $ stat x,v
   Modify: 2017-10-26 19:18:31.000000000 +0200

Cool, this is a big clue.  Seeing this, i now feel i can trust
/bin/sh ‘test -nt’ on your system to DTRT (i.e., the failure of
t810 is meaningful).  (On the flip side, sending a tarball of
the failing tNNN.d loses a bit of its allure as a first step
collaborative debug strategy, so it goes...)

The correct outcome should be that x,v mtime explicitly mirrors
x mtime (i.e., ...:31.309078104).  The current implementation
uses ‘utime’ (in rcsedit.c, func ‘setmtime’) to do this job.
This works on filesystems lacking sub-second resolution support,
but that's no longer sufficient these days, apparently.

I see from utime(2) on my system:

 POSIX.1-2008 marks utime() as obsolete.

Seems like a good hint as well, pointing us to ‘utimensat’ as a
replacement (specified in POSIX.1-2008) that supports ‘struct
timespec’ for full nanosecond resolution.

On the input side (finding the x mtime), we'll use gnulib module
‘stat-time’ to tame the ‘struct stat’ zoo.  Finally, an excuse
to rename var ‘newRCStime’ to something less ugly -- bwahahahah!

-- 
Thien-Thi Nguyen -----------------------------------------------
 (defun responsep (query)
   (pcase (context query)
     (`(technical ,ml) (correctp ml))
     ...))                              748E A0E8 1CB8 A748 9BFA
--------------------------------------- 6CE4 6703 2224 4C80 7502

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]