bug-tar
[Top][All Lists]
Advanced

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

Re: [Bug-tar] tar-1.15.1+: numerous bugs in xheader.c


From: Paul Eggert
Subject: Re: [Bug-tar] tar-1.15.1+: numerous bugs in xheader.c
Date: Wed, 22 Jun 2005 14:21:18 -0700
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux)

Sergey Poznyakoff <address@hidden> writes:

> What's the exact reason for this change:
>
>>      The -v option now prints time stamps only to 1-minute resolution.
>
> It breaks backward compatibility, is it really needed?

It's not essential, but I think it's an improvement.

Here's the background.  Traditional tar -tv (and GNU tar up through
1.11) prints time stamps only to 1-minute resolution, so to some
extent this might be called reverting to tradition.

When GNU tar -tv started producing ISO-style time stamps (circa 1997),
it also started printing the seconds, as this presents the full
timestamp information to the user.

When I improved the support for nanosecond timestamps yesterday, I
initially follwed in that precedent by outputting the full resolution
time stamp.  But the output got too long.  For example, instead of
seeing this:

-rw-rw-r-- eggert/faculty 3669 2005-04-18 11:40:26 provider/GnuRSAPublicKey.java

I started seeing this:

-rw-rw-r-- eggert/faculty 3669 2005-04-18 11:40:26.327960193 
provider/GnuRSAPublicKey.java

Furthermore, if tar outputs this extra time stamp information, it runs
into the problem that some timestamps are wider than others, and it
has to adjust the time stamp print width on the fly, causing ragged
columns in some cases and excess white space in others.  So the output
might end up looking like this:

-rw-rw-r-- eggert/faculty  345 2005-04-18 11:40:24 provider/BasicInfo.java
-rw-rw-r-- eggert/faculty 3669 2005-04-18 11:40:26.327960193 
provider/GnuRSAPublicKey.java
-rw-rw-r-- eggert/faculty   69 2005-04-18 11:40:27           
provider/LongWinded.java

or, if you always output nanoseconds, like this:

-rw-rw-r-- eggert/faculty  345 2005-04-18 11:40:24.000000000 
provider/BasicInfo.java
-rw-rw-r-- eggert/faculty 3669 2005-04-18 11:40:26.327960193 
provider/GnuRSAPublicKey.java
-rw-rw-r-- eggert/faculty   69 2005-04-18 11:40:27.000000000 
provider/LongWinded.java

Given all these problems, I thought it better to go back to the older
tradition and output time only to the nearest minute (albeit with ISO
8601 format rather than Unix Version 7 format):

-rw-rw-r-- eggert/faculty  345 2005-04-18 11:40 provider/BasicInfo.java
-rw-rw-r-- eggert/faculty 3669 2005-04-18 11:40 provider/GnuRSAPublicKey.java
-rw-rw-r-- eggert/faculty   69 2005-04-18 11:40 provider/LongWinded.java

under the argument that this is enough time stamp information for
ordinary use.

If you prefer outputting full time information instead, I can easily
generate it.  But I think it'd be better to do it as an option.
Perhaps we could add a --full-time option, which acts like GNU ls's
--full-time output, and causes it to output the nanoseconds.  Even
fancier would be to add GNU ls's --time-style option, which would let
the user specify an arbitrary strftime format.




reply via email to

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