X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=tests%2Fincremen.sh;h=fea59c83dc7e11b9b6241d214bbe5f0490cff216;hb=7fb546943ef0bd07a1bc65164e6e752b9fa4126f;hp=c723e9c9b66b2c2fc26cb64122373296865f28d6;hpb=70fdfd4fa136db573a473fcb30a6e2d8e58e5c72;p=chaz%2Ftar diff --git a/tests/incremen.sh b/tests/incremen.sh index c723e9c..fea59c8 100755 --- a/tests/incremen.sh +++ b/tests/incremen.sh @@ -2,17 +2,32 @@ # A directory older than the listed entry was skipped completely. . ./preset +TAR_ARCHIVE_FORMATS="gnu oldgnu" . $srcdir/before set -e mkdir structure -touch structure/file -# FIXME: The sleep is necessary for the second tar to work. Exactly why? +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. sleep 1 + tar cf archive --listed=list structure tar cfv archive --listed=list structure echo ----- -touch structure/file +sleep 1 +echo y >structure/file tar cfv archive --listed=list structure out="\