X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=ChangeLog;h=bb7d8de1351216ae3d71d4565b3a57c0de9cde1b;hb=7eeb467132fbc37dff8a008c33f4e277291a4609;hp=ea615002cf81a57592db928036260894e11027c9;hpb=6ac0d0aadd84ab91bf8b0a43728ed78a4d467ce3;p=chaz%2Ftar diff --git a/ChangeLog b/ChangeLog index ea61500..bb7d8de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,113 @@ +2004-02-21 Sergey Poznyakoff + + * src/create.c (dump_file0): The conditional at line + 1296 prevented incremental backups on individual files + from working, as reported by Andreas Schuldei + . + + This is due to the condition + + (0 < top_level || !incremental_option) + + Removing it makes incremental backups work for individual + files as well as for directories. On the other hand, it does + not affect other functionality, as shown by the reasoning below: + + To begin with, the two parts of this condition are mutually + superfluous, because + + 1) when top_level < 0, incremental_option == 1 + so the condition yields false + 2) when top_level >= 0, incremental_option == 0 + so the condition yields true. + + In other words, it is completely equivalent to + + (!incremental_option) + + Now, let's consider the effect of its removal. There are two cases: + + 1) when incremental_option==1 + This means incremental backup in progress. In this case dump_file + is invoked only for directories or for files marked with 'Y' by + get_directory_contents. The latter are those that did not meet the + condition in incremen.c:242, which is exactly the same condition + as this at create.c:1296. So, for these files the check + (!incremental_option) is useless, since the rest of the + conditional will yield false anyway. On the other hand, if + dump_file is invoked on a directory, the conditional will yield + false due to !S_ISDIR assertion, so these will be processed as usual. + + Thus, for this case the extra condition (!incremental_option) is + irrelevant, and its removal won't alter the behavior of tar, + *except* that it will enable incremental backups on individual + files, which is the wanted effect. + + 2) when incremental_option==0 + In this case the condition yields true and its removal does not + affect the functionality. + + * THANKS: Updated + * configure.ac: Raised patchlevel to 92a + * src/incremen.c: Minor stylistic fixes. + * tests/listed01.sh: New test. Check listed incremental + backups on individual files. + * tests/Makefile.am: Added listed01.sh + +2004-02-20 Sergey Poznyakoff + + * src/common.h (simple_finish_header,start_private_header): New + declarations + (xheader_ghdr_name): Changed declaration + * src/create.c (start_private_header): Removed static qualifier. + (write_extended): Removed superfluous last argument. Use + xheader_write() + (simple_finish_header): New function. + (finish_header): Use simple_finish_header() to break recursive + dependency between this function and write_extended(). + * src/tar.c (assert_format): Do not bail out if several + --format arguments are given. This is a common case when + TAR_OPTIONS are used. + (decode_options): New option --show-defaults displays the + compiled-in defaults. + Use POSIX format if no --format option was given and + --pax-option was specified. + Do not allow to use --pax-option unless the archive format is + set to POSIX (or reading subcommand is requested). + + * src/update.c (update_archive): Write global extended header if + constructed. + * src/xheader.c (xheader_format_name): Bugfix. + (xheader_xhdr_name): Changed the default extended header name + to '%d/PaxHeaders.%p/%f', as POSIX requires. + (xheader_ghdr_name): Removed unused argument. + (xheader_write,xheader_write_global): New function. + (xheader_decode): Modified to honor overrides whatever + the current archive format is. + + * src/delete.c (delete_archive_members): Call xheader_decode + unconditionally. + * src/list.c (decode_header): Likewise. + * src/incremen.c (sort_obstack): Fixed typo in the comment + + * doc/tar.texi: Document new default for extended + header names. + + * tests/before: Accept an optional list of allowed archive + formats. Exit with the status 77 if the current archive + format does not match any of them. + * tests/delete03.sh: Require gnu, oldgnu or posix format + * tests/incremen.sh: Require gnu or oldgnu format + * tests/multiv01.sh: Likewise + +2004-02-20 Sergey Poznyakoff + + * doc/tar.texi (Option Summary): Documented --pax-option + * src/tar.c: Likewise. + * NEWS: Likewise. + * src/create.c (to_chars): Added a comment. + * src/tar.h: Comment to GNU_FORMAT + 2004-02-18 Sergey Poznyakoff * README: Updated