File tree 1 file changed +10
-6
lines changed
1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change 1
1
#! /usr/bin/env bash
2
2
set -eu -o pipefail
3
3
4
- # Attempt to create files with the latest and earliest possible dates for ext4. Nanoseconds are
5
- # special there, but not usually on other filesystems. In some touch implementations, the format
6
- # may be rejected. So if a command fails, we try again with a more extreme date that is out of
7
- # range, because some implementations will clip it to the edge of the range (but they may fail).
8
- touch -d ' 2446-05-10 22:38:55.111111111' future || touch -d ' 2446-05-11 22:38:56' future
9
- touch -d ' 1901-12-13 20:45:52.222222222' past || touch -d ' 1901-12-13 20:45:52' past
4
+ # Attempt to create files with the latest and earliest possible 64-bit dates/times for ext4.
5
+ # Although nanoseconds are stored in ext4, specifying fractions of a second does not seem to make
6
+ # this work better, and omitting them allows the commands that attempt to set these dates to
7
+ # succeed on more systems. While we use a portable format, if the system rejects a future date as
8
+ # out of range with an error (and touch does not automatically retry with an allowed date) then it
9
+ # can fail. In this case, we try again with a much more moderate date: the greatest value that can
10
+ # in practice always parse to fit within a 32-bit signed time_t. This is subject to change to
11
+ # support changed or new tests. It will also become less useful in the near future (after 2038).
12
+ TZ=UTC touch -d ' 2446-05-10 22:38:55' future || TZ=UTC touch -d ' 2038-01-19 03:14:07' future
13
+ TZ=UTC touch -d ' 1901-12-13 20:45:52' past
You can’t perform that action at this time.
0 commit comments