From: Joey Hess Date: Fri, 2 Mar 2012 18:56:25 +0000 (-0400) Subject: Fix bug in mtime resetting code, which caused delta files to be created that failed... X-Git-Tag: 1.21~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14a4787885515d9a098d2c11a7981cc18e59b929;p=tools%2Fpristine-tar.git Fix bug in mtime resetting code, which caused delta files to be created that failed to regenerate the original tarball. Closes: #661902 Need to set mtime in a separate pass, after symlink replacement with regular file is complete. --- diff --git a/debian/changelog b/debian/changelog index 09e05f7..3d199f6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +pristine-tar (1.21) UNRELEASED; urgency=low + + * Fix bug in mtime resetting code, which caused delta files to be created + that failed to regenerate the original tarball. Closes: #661902 + + -- Joey Hess Fri, 02 Mar 2012 14:55:07 -0400 + pristine-tar (1.20) unstable; urgency=low * pristine-xz: Try --extreme too. While my corpus has no such xz files, diff --git a/pristine-tar b/pristine-tar index e3c2a11..ea3af7a 100755 --- a/pristine-tar +++ b/pristine-tar @@ -300,7 +300,11 @@ sub recreatetarball { chmod(0755, "$tempdir/workdir/$file") || die "chmod: $!"; } + } + # Set file times only after modifying of the directory content is + # done. + foreach my $file (@manifest) { if (-e "$tempdir/workdir/$file") { utime(0, 0, "$tempdir/workdir/$file") || die "utime: $file: $!"; } @@ -324,6 +328,8 @@ sub recreatetarball { chmod(0755, $_) || die "chmod: $!"; } + }, "$tempdir/workdir"); + find(sub { utime(0, 0, $_) || die "utime: $_: $!"; }, "$tempdir/workdir"); }