• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 446
  • Last Modified:

Is RCS / CVS Y2K compliant?

My underlying OS (SVR4) is Y2K compliant but I was wondering whether RCS and CVS was capable of storing and manipulating dates beyond 1999?

Has anyone actually tested this?
Iis there anything like a site that could provide an "official" answer to this question (eg. support@gnu.com)?:
1 Solution
In general most unix applications that have been rewritten several times (RCS certainly has), will use the unix time C library. This is a 32 bit counter from 1/1/1970 in seconds. So it will wrap round in 2038.

However, anything compiled using very recent libraries (ie last year or so), will probably be using a 64 bit counter. This will expire in about 500,000,000,000 - the Earth is set to be swalled up by the Sun in about 20,000,000. So no need to worry there!

I know this doesn't answer the question, but it's interesting all the same...
RCS and SCCS store dates in the form  yy/mm/dd, so they are not Y2k complient.
AFAIK, SCCS uses 1969 as base (not 1970) and therefore is y2k complient 'till 2068.
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

I just checked GNU's implementation of RCS and they explicitely mention

'Y' contains just the last two digits of the year for years from 1900 through
1999, and all the digits of years thereafter.  Dates use the Gregorian calendar;
times use UTC.

This makes me feel quite confident the (at least GNU's) RCS is Y2K 'safe' ...

kind regards,

Jos aka jos@and.nl

jos, it couldn't be Y2K safe if it just uses 2 digits per year.
  have a file with deltas made
    01-jan-1999, 31-dec-1999,
    01-jan-2000, 01-jan-2099, 02-jan-2099, 31-dec-2099
then use:
    co -d"1999-01-01" file
    co -d"2099-01-01" file
to get it back.
I never tested this, but I expect that you get deltas from 01-jan-1999 and newer for both co commands.
RCS 5.x is y2k compliant.   For backward compatibility with (very) old versions it uses 2-digit dates until the end of 1999.   After that it uses 4 digits.    

CVS 1.9 itself is not y2k compliant, but there are updates to it (numbered 1.9.x) which are definitely y2k compliant.

It is *possible* for SCCS to be y2k compiant, as ahoffmann stated, but most installed versions of unix have a non-compliant version.    All the Unix vendors offer a compliant version currently though -- you would need to pay for it.  
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now