Commit Graph

574 Commits

Author SHA1 Message Date
Sergey Poznyakoff
b960c38c4b (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.
2004-02-21 09:33:58 +00:00
Sergey Poznyakoff
d46025b23c (sort_obstack): Fixed typo in the comment 2004-02-20 15:40:47 +00:00
Sergey Poznyakoff
72ac31581d (decode_header): Call xheader_decode unconditionally. 2004-02-20 15:39:45 +00:00
Sergey Poznyakoff
64cca92a1f (delete_archive_members): Call xheader_decode unconditionally. 2004-02-20 15:39:29 +00:00
Sergey Poznyakoff
f038194718 (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.
2004-02-20 15:34:12 +00:00
Sergey Poznyakoff
eff25ef359 (update_archive): Write global extended header if constructed. 2004-02-20 15:33:12 +00:00
Sergey Poznyakoff
b3060eabaf (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).
2004-02-20 15:32:56 +00:00
Sergey Poznyakoff
93a4273b66 (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().
2004-02-20 15:32:12 +00:00
Sergey Poznyakoff
17be45c834 (simple_finish_header,start_private_header): New
declarations
(xheader_ghdr_name): Changed declaration
2004-02-20 15:30:26 +00:00
Sergey Poznyakoff
b4e605a829 Added a comment 2004-02-20 11:45:15 +00:00
Sergey Poznyakoff
b58452bdbd Documented --pax-option 2004-02-20 11:44:46 +00:00
Sergey Poznyakoff
694e8376ab Minor fixes 2004-02-18 14:41:41 +00:00
Sergey Poznyakoff
440e65ef2c Implement pax -o option. Fixed misleading heading comment (introduced 2003-09-02). 2004-02-18 14:41:23 +00:00
Sergey Poznyakoff
d0eceef438 New option --pax-option (equivalent to -o option of pax). 2004-02-18 14:41:00 +00:00
Sergey Poznyakoff
434f2a22ba (write_extended): Call xheader_xhdr_name
instead of using hardcoded "././@PaxHeader" name.
2004-02-18 14:40:21 +00:00
Sergey Poznyakoff
0bfb6e136d (xheader_xhdr_name,xheader_ghdr_name): New functions 2004-02-18 14:39:36 +00:00
Sergey Poznyakoff
67d29a4d60 Minor changes 2004-02-17 13:33:14 +00:00
Sergey Poznyakoff
df7792b5d8 Removed accumulator stuff in favor of obstack.
get_directory_contents): Split into two functions
2004-02-17 13:32:41 +00:00
Paul Eggert
8b107d09e1 Fix Debian bug 230872, originally reported by Jeff King in
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=230872>.
2004-02-15 08:36:20 +00:00
Sergey Poznyakoff
bda7d59010 (time_to_start_writing): Changed data type. 2004-01-03 22:26:30 +00:00
Sergey Poznyakoff
463e7278f4 (decode_options): More option compatibility checks (moved from buffer.c) 2004-01-03 22:26:11 +00:00
Sergey Poznyakoff
829b1dc328 Updated assignment to write_archive_to_stdout 2004-01-03 22:25:41 +00:00
Sergey Poznyakoff
dd6094f6c0 Updated invocations of safer_name_suffix 2004-01-03 22:25:24 +00:00
Sergey Poznyakoff
bc89f023c1 (maybe_backup_file): Changed return type 2004-01-03 22:24:35 +00:00
Sergey Poznyakoff
95be2c50b4 (new_volume,check_label_pattern): Changed return type.
(time_to_start_writing): Changed data type
(file_to_switch_to): Removed. Variable never assigned to.
(open_archive) Moved option compatibility checks to tar.c
Other minor changes.
2004-01-03 22:23:48 +00:00
Sergey Poznyakoff
2690759c06 (dump_dir0): Bugfix. Thanks Piotr Czerwinski <pius@pld-linux.org> for the patch. 2004-01-03 11:45:31 +00:00
Sergey Poznyakoff
b74232b9ad (sparse_diff_file): Bugfix. Thanks Martin Simmons for the patch. 2004-01-03 11:44:45 +00:00
uid65697
3710b34c7e (code_time,decode_time): Support for subsecond precision. (atime_coder,atime_decoder,ctime_coder,ctime_decoder) (mtime_coder,mtime_decoder): Update invocations of code_time and decode_time. (gid_decoder,size_decoder,uid_decoder,sparse_size_decoder) (sparse_numblocks_decoder,sparse_offset_decoder) (sparse_numbytes_decoder): Updated 2003-12-25 10:20:43 +00:00
uid65697
ad37f06975 (tar_stat_info.atime_nsec,mtime_nsec,ctime_nsec): New members. 2003-12-25 10:20:32 +00:00
uid65697
12b111ffa3 (sys_stat_nanoseconds): New function 2003-12-25 10:20:19 +00:00
uid65697
5160a64f71 (sparse_scan_file): Correctly handle files with a hole at the end. (sparse_dump_region,sparse_extract_region): Allow for zero size trailing blocks 2003-12-25 10:20:05 +00:00
uid65697
f30c03c934 (safer_name_suffix): Reverted change made 2003-11-14. Reason: Discussion with Paul Eggert and Jean-Louis Martineau. See also ChangeLog entry from 1999-08-14. 2003-12-25 10:19:40 +00:00
uid65697
67a6a93b2f (read_and): Treat only two successive zero filled blocks as an EOF indicator. Issue a warning if a single one is encountered. 2003-12-25 10:19:24 +00:00
uid65697
50b2227279 (print_header): Use archive_file_size member when printing real file size. 2003-12-25 10:19:12 +00:00
uid65697
defde32533 (decode_header): Discern between pax and ustar formats 2003-12-25 10:19:00 +00:00
uid65697
fc184a85e1 (write_directory_file): Use sys_truncate 2003-12-25 10:18:48 +00:00
uid65697
f7ce5a4ec5 (dump_file0): Use sys_stat_nanoseconds(). 2003-12-25 10:18:37 +00:00
uid65697
2a027394ef (sys_stat_nanoseconds): New function 2003-12-25 10:18:25 +00:00
uid65697
278a8945a6 (short_read): Issue a warning on short reads. 2003-12-25 10:18:14 +00:00
Sergey Poznyakoff
5f32345fe6 Minor fix 2003-12-01 21:28:11 +00:00
Sergey Poznyakoff
fa2801b6dc (struct xhdr_tab.coder; all coder function): Added
extra argument
Implemeted GNU.sparse.* keywords.
2003-12-01 21:21:11 +00:00
Sergey Poznyakoff
f193c4c04a (usage): Cleaned up the sample argument to --newer
option.
(decode_options): Allow --sparse for POSIX_FORMAT archives.
2003-12-01 21:20:47 +00:00
Sergey Poznyakoff
47e73c7a44 (extract_archive): Check reported size vs.
archive file size to determine if we have to do with a
sparse file.
2003-12-01 21:19:37 +00:00
Sergey Poznyakoff
2632f1c8d2 Update calls to xheader_store 2003-12-01 21:19:16 +00:00
Sergey Poznyakoff
4dcf7987f8 (xheader_store): Changed prototype. 2003-12-01 21:19:01 +00:00
Sergey Poznyakoff
374ce58aa0 Initial implementation of GNU/pax sparse file format. 2003-12-01 21:18:30 +00:00
Sergey Poznyakoff
25d9ca1163 (write_gnu_long_link): Use oldgnu magic with @LongLink blocks. 2003-11-25 07:04:45 +00:00
Sergey Poznyakoff
8d6e47cc7f Support for star sparse format 2003-11-17 15:20:46 +00:00
Sergey Poznyakoff
bb798080be (diff_archive): Use sparse_diff_file. 2003-11-17 11:05:18 +00:00
Sergey Poznyakoff
d4e70d3656 (sys_compare_uid,sys_compare_gid): New functions
(sys_compare_uid_gid): Removed.
(sys_compare_links): Changed declaration
2003-11-17 11:05:06 +00:00