emacs-devel
[Top][All Lists]
Advanced

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

Re: vc-cvs-parse-entry


From: Stefan Monnier
Subject: Re: vc-cvs-parse-entry
Date: Tue, 29 Aug 2006 17:06:50 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

>> 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", 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.
IIRC "cvs update" will fix things for you.


        Stefan


PS: Note that last I heard `cvs status' has to send the file over to the
    server in order to figure out that it's up-to-date, because it uses the
    exact same algorithm as vc-cvs.el to decide whether a file was touched
    or not.  You can figure that out with "cvs -t status":

% cvs -t status INSTALL.CVS 
  -> main: Session ID is Mg0eb0F9FW12DMKr
  -> main loop with CVSROOT=/sources/emacs
  -> open_connection_to_server (cvs.sv.gnu.org:/sources/emacs)
 -> Starting server: ssh-cvs cvs.sv.gnu.org cvs server 
  -> rename(CVS/Entries.Backup,CVS/Entries)
  -> unlink_file(CVS/Entries.Log)
S -> serve_directory (.)
S -> dirswitch (., /sources/emacs/emacs)
S -> do_cvs_command (status)
S -> server_notify()
===================================================================
File: INSTALL.CVS       Status: Up-to-date

   Working revision:    1.7
   Repository revision: 1.7     /sources/emacs/emacs/INSTALL.CVS,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

S -> server_pathname_check (INSTALL.CVS)
S -> Reader_Lock(/sources/emacs/emacs)
S -> Simple_Lock_Cleanup()
  -> close_connection_to_server ()
S -> Lock_Cleanup()
S -> Simple_Lock_Cleanup()
S -> server_cleanup()
% touch INSTALL.CVS 
% cvs -t status INSTALL.CVS
  -> main: Session ID is 0Ihv3mbkCYccDMKr
  -> main loop with CVSROOT=/sources/emacs
  -> open_connection_to_server (cvs.sv.gnu.org:/sources/emacs)
 -> Starting server: ssh-cvs cvs.sv.gnu.org cvs server 
  -> Sending file `INSTALL.CVS' to server
S -> serve_directory (.)
  -> Register(INSTALL.CVS, 1.7, Tue Aug 29 21:05:25 2006, ,  )
  -> rename(CVS/Entries.Backup,CVS/Entries)
  -> unlink_file(CVS/Entries.Log)
===================================================================
File: INSTALL.CVS       Status: Up-to-date

   Working revision:    1.7
   Repository revision: 1.7     /sources/emacs/emacs/INSTALL.CVS,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

S -> server_pathname_check (INSTALL.CVS)
S -> Reader_Lock(/sources/emacs/emacs)
S -> RCS_cmp_file( /sources/emacs/emacs/INSTALL.CVS,v, 1.7, (null), , 
INSTALL.CVS )
S -> RCS_checkout (/sources/emacs/emacs/INSTALL.CVS,v, 1.7, , , (function))
S -> server_register(INSTALL.CVS, 1.7, Tue Aug 29 21:05:27 2006, , , , )
S -> Register(INSTALL.CVS, 1.7, Tue Aug 29 21:05:27 2006, ,  )
S -> Simple_Lock_Cleanup()
S -> rename(CVS/Entries.Backup,CVS/Entries)
S -> unlink_file(CVS/Entries.Log)
  -> close_connection_to_server ()
S -> dirswitch (., /sources/emacs/emacs)
S -> do_cvs_command (status)
S -> server_notify()
S -> Lock_Cleanup()
S -> Simple_Lock_Cleanup()
S -> server_cleanup()
% 




reply via email to

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