all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
Cc: emacs-devel@gnu.org
Subject: Re: vc-cvs-parse-entry
Date: Sun, 03 Sep 2006 12:40:11 +0200	[thread overview]
Message-ID: <44FAB10B.8010608@gmx.at> (raw)
In-Reply-To: <uy7t2uxxs.fsf@gnu.org>

 >>FWIW, CVS did "use the right code to get the file times".
 >
 >
 > By ``CVS'', do you mean ``the recently installed wincvs'' you
 > mentioned?

No. I mean Concurrent Versions System (CVS) 1.11.19 (client).

 > I use some old port of CVS, and it does have problems when
 > DST changes, even though I have an XP machine and an NTFS filesystem.
 > So I think the CVS port does have a say here, not only the filesystem.

Maybe it's related to what I read here

http://www.codeproject.com/datetime/dstbugs.asp

and there

http://www.devguy.com/fp/cfgmgmt/cvs/

 >>Provided DST is on in your current time zone: Do you have a file on your
 >>system with a modification date while DST was off?
 >
 >
 > Yes, of course.  How about src/unexelf.c, for example?  It has the
 > modification time of March 18, 2006, 5:32PM on my system.

It's the problem we had before, just in reverse.  I did a CVS update on
April 11th, 2006.

 >>Does your OS give the same modification time as Emacs?
 >
 >
 > The problem is with the ``OS'' part--how did you know what ``the OS''
 > thinks about that file's times?  What utilities/system calls and/or
 > Emacs functions you used to find that out?  I don't think we can have
 > any progress until we have answers for these questions, and understand
 > well what code is involved in reporting time stamps.  One problem is
 > that, for commands like DIR, we don't have any way of knowing what
 > they do, since their source code is not available.
 >
 > What I did was to reset the time zone to GMT and disable the automatic
 > DST corrections, then look at what DIR (from cmd.exe) reports.  I then
 > set the time zone back to the normal setting, and looked at what DIR
 > displayed now.

Did you change your local time in the BIOS?  Did you change the time
zone settings in

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\

Or did you simply check the box about automatic correction from the
system tray?  That just dis-/enables setting local time after the first
start of Windows when DST has changed by consulting

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones\

My settings for this are

C4 FF FF FF 00 00 00 00
C4 FF FF FF 00 00 0A 00  <-- 0A means "october"
00 00 05 00 03 00 00 00  <-- 05 means last sunday, 03 at three o'clock
00 00 00 00 00 00 03 00  <-- 03 means "march"
00 00 05 00 02 00 00 00  <-- 05 means last sunday, 02 at two o'clock
00 00 00 00

Did you change that?

I have checked the box on the present partition and disabled it on all
other partitions.  Otherwise I'd change my local time whenever I switch
to another partition after DST changed.  (Un-)checking the box does not
have any impact on how file modification times are reported.

 > My conclusion was that DIR lies about file times: it
 > reports them as if DST were in effect, even if the file was modified
 > when DST was off.

Because you neither changed your local time nor the respective registry
settings, I presume.  (I think it's better to leave them alone, anyway.)

 > By contrast, the GnuWin32 port of ls.exe reported
 > the file times correctly, both for files modified under DST and files
 > modified outside DST.

Because ls refers to the UTC value stored on disk.  I don't have that.

My ls.exe (version 3.16 of GNU fileutils) doesn't report full time for
files modified before March, 9th, 2006 - for whatever reason.  However,
the times reported by ls for files last modified around March 15, 2006
match those reported by DIR and other applications.  They are _not_
identic to those reported by Emacs' file-attributes.

 > We could make a similar check with Emacs primitives instead of ls.exe
 > and DIR, if needed.
 >
 > But the trick with setting TZ to GMT probably won't work on FAT
 > volumes, since the file times are recorded as local time there.

But do ls.exe and DIR give the same information for src/unexelf.c on
your system?  And what would interest me most: Could you try to debug
`vc-cvs-parse-entry' while opening src/unexelf.c and look whether it
classifies the file as modified?

 > Btw, I find the Date/Time decoder utility very useful when testing
 > these issues, see:
 >
 >    http://www.digital-detective.co.uk/freetools/decode.asp

What values do you paste there?  Where do you get them from?

 > It's possible.  You might be able test this hypothesis by unchecking
 > the "Automatically adjust clock for daylight saving changes" checkbox
 > in the "Time Zone" tab of the "Date and Time Properties" dialog that
 > pops up when you double-click the current time string displayed at the
 > right edge of your system tray.  (You will need to reboot the machine
 > after unchecking that option, so that Windows doesn't reuse the cached
 > values of DST offset, when it reports UTC file times.)

This is not sufficient as I tried to explain above.

  reply	other threads:[~2006-09-03 10:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-29 16:20 vc-cvs-parse-entry martin rudalics
2006-08-29 19:07 ` vc-cvs-parse-entry Stefan Monnier
2006-08-29 20:51   ` vc-cvs-parse-entry martin rudalics
2006-08-29 21:06     ` vc-cvs-parse-entry Stefan Monnier
2006-08-30 12:24       ` vc-cvs-parse-entry Eli Zaretskii
2006-08-30 17:51         ` vc-cvs-parse-entry martin rudalics
2006-09-02 13:10           ` vc-cvs-parse-entry Eli Zaretskii
2006-09-02 13:45             ` vc-cvs-parse-entry martin rudalics
2006-09-02 14:48               ` vc-cvs-parse-entry Eli Zaretskii
2006-09-03 10:40                 ` martin rudalics [this message]
2006-09-03 21:00                   ` vc-cvs-parse-entry Eli Zaretskii
2006-09-04  3:17                     ` vc-cvs-parse-entry Eli Zaretskii
2006-09-04  9:17                       ` vc-cvs-parse-entry martin rudalics
2006-09-04 17:55                         ` vc-cvs-parse-entry Eli Zaretskii
2006-09-05  9:10                           ` vc-cvs-parse-entry martin rudalics
2006-09-05 18:31                             ` vc-cvs-parse-entry Eli Zaretskii
2006-09-10  9:55                               ` vc-cvs-parse-entry martin rudalics
2006-09-10 21:17                                 ` vc-cvs-parse-entry Eli Zaretskii
2006-09-11  9:41                                   ` vc-cvs-parse-entry martin rudalics
2006-09-11 14:14                                     ` vc-cvs-parse-entry Stefan Monnier
2006-09-12  3:50                                     ` vc-cvs-parse-entry Eli Zaretskii
2006-09-14  8:40                                       ` vc-cvs-parse-entry martin rudalics
2006-09-15 17:43                                         ` vc-cvs-parse-entry Eli Zaretskii
2006-09-15 17:51                                         ` vc-cvs-parse-entry Eli Zaretskii
2006-08-30 21:01         ` vc-cvs-parse-entry Stefan Monnier
2006-09-02 12:32           ` vc-cvs-parse-entry Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44FAB10B.8010608@gmx.at \
    --to=rudalics@gmx.at \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.