unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
Cc: rudalics@gmx.at, emacs-devel@gnu.org
Subject: Re: vc-cvs-parse-entry
Date: Wed, 30 Aug 2006 15:24:04 +0300	[thread overview]
Message-ID: <uhczubee3.fsf@gnu.org> (raw)
In-Reply-To: <jwvlkp7b6p8.fsf-monnier+emacs@gnu.org> (message from Stefan Monnier on Tue, 29 Aug 2006 17:06:50 -0400)

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Tue, 29 Aug 2006 17:06:50 -0400
> Cc: emacs-devel@gnu.org
> 
> >> What system is that (w32?)?
> > In GNU Emacs 22.0.50.1 (i386-mingw-windows98.3000)
> 
> Then it's a known problem that's pretty hard to fix:
> 
> w32 handles DST by changing the definition of "time 0"

This is not really accurate, at least on newer versions of Windows;
see below.

> so during the DST-change things behave as if all the files's
> timestamps had been changed by 1 hour.
> 
> So there really is a 1-hour difference between what the CVS/Entries file
> says and what the file's time stamp says.  We could try to be more clever
> with such situations, but since it's basically a case of braindamage in the
> w32 "spec" I'd rather not bother.

I'm not familiar with the details, nor with vc-cvs in general, so
what's below might be nonsense; sorry if so.

Is the problem you describe above in Emacs or in the CVS client that
Emacs runs?  If the latter, I agree that some (or maybe all) Windows
ports of the CVS client don't DTRT in this case.

If this is the problem, the only way to fix it is to complain to the
maintainer(s) of the CVS port and maybe provide a patch to them.

However, if the problem is in Emacs, we might be able to fix it, if
someone describes what Emacs functions are involved.  This is because
Windows does maintain the DST change rules, and its implementation of
localtime is supposed to use those rules, if they are known to the OS,
when it computes the tm_isdst member of struct tm.  So, at least in
principle, the required information is available, and can be used to
DTRT in this case.  For example, in the GnuWin32 port of Diffutils, I
see that the file times are reported with correct TZ offsets, like
this:

  --- make.h~0   2006-02-16 03:54:43.000000000 +0200
  +++ make.h     2006-08-18 21:12:32.859375000 +0300

As you see, Diff correctly determines that the old version was before
the DST change, while the new was after it.  AFAICS, Diff uses
strftime (which in turn uses localtime) to get at this information.

> IIRC "cvs update" will fix things for you.

Yes, but it's _awfully_ slow.  I needed to write a program to move the
files' last write timestamp by N hours, to avoid the resultant lossage
on Windows, whereby "cvs up" after a DST change can take _hours_
because each file is sent upstream due to the time mismatch.

Again, sorry if what I said doesn't make sense in the context of this
discussion.

  reply	other threads:[~2006-08-30 12:24 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       ` Eli Zaretskii [this message]
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                 ` vc-cvs-parse-entry martin rudalics
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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=uhczubee3.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).