[Top][All Lists]
[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.