Sergey Poznyakoff 21 years ago
parent
commit
dfbfc2446f
1 changed files with 56 additions and 0 deletions
  1. 56 0
      ChangeLog

+ 56 - 0
ChangeLog

@@ -1,3 +1,59 @@
+2004-02-21  Sergey Poznyakoff  <[email protected]>
+
+	* src/create.c (dump_file0): The conditional at line
+	1296 prevented incremental backups on individual files
+	from working, as reported by Andreas Schuldei
+	<[email protected]>.
+
+	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  <[email protected]>
 
 	* src/common.h (simple_finish_header,start_private_header): New