[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Subversion and Daylight Savings Time

From: Daniel Rall <dlr_at_collab.net>
Date: 2007-01-15 22:47:26 CET

On Mon, 15 Jan 2007, Mark Phippard wrote:
...
> We have been getting a lot of inquiries from our customers as to how our
> products are impacted by the upcoming changes to DST. Most are looking for
> official statements. It might save a lot of time and effort in the long run
> if someone crafted a statement about Subversion and posted it to the web
> site so that we could link to it when questions come to the mailing lists.

Good idea! Feel like writing one up? :)

> I do not know the ways Subversion might be impacted, but I would assume that
> Subversion is a lot like our products and would just be getting the current
> time from the OS and converting it to/from UTC using routines provided by
> the OS. So as long as the OS is properly patched, there should not be any
> issues with Subversion. Anyway, I think an official statement somewhere
> would be worth the effort.

Yup.

Looking at the FSFS code, the repository's FS gets the current time in
microseconds since the epoch (00:00:00 January 1, 1970 UTC), converts
that into a string (with the repository's time + the timezone offset),
and saves that to the FS. Example from libsvn_fs_fs/commit_body():

  date.data = svn_time_to_cstring(apr_time_now(), pool);
  date.len = strlen(date.data);

  SVN_ERR(svn_fs_fs__change_txn_prop(cb->txn, SVN_PROP_REVISION_DATE,
                                     &date, pool));

When pulling data from the repository (e.g. change log messages), we
send that string back to the client, which can convert it back into
microseconds since the epoch using svn_time_from_cstring() (and then
back to UTC time or any other time zone offset via
svn_time_to_cstring()).

  • application/pgp-signature attachment: stored
Received on Mon Jan 15 23:34:47 2007

This is an archived mail posted to the Subversion Dev mailing list.