]> Dogcows Code - chaz/tar/blobdiff - ChangeLog
Minor fix
[chaz/tar] / ChangeLog
index ea615002cf81a57592db928036260894e11027c9..bb7d8de1351216ae3d71d4565b3a57c0de9cde1b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,113 @@
+2004-02-21  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/create.c (dump_file0): The conditional at line
+       1296 prevented incremental backups on individual files
+       from working, as reported by Andreas Schuldei
+       <andreas@schuldei.org>.
+
+       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  <gray@Mirddin.farlep.net>
+
+       * 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  <gray@Mirddin.farlep.net>
+       
+       * 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  <gray@Mirddin.farlep.net>
 
        * README: Updated
This page took 0.029493 seconds and 4 git commands to generate.