Wayne Davison [Tue, 29 Mar 2005 22:05:33 +0000 (22:05 +0000)]
- Fixed a potential crash if the receiver couldn't open the basis file
and the sender (possibly via a batch) tells us to use basis data.
- Enhanced the batched-update skipping message to indicate what phase
is being skipped.
Wayne Davison [Tue, 29 Mar 2005 19:49:40 +0000 (19:49 +0000)]
- Warn about missing batched updates the generator wants but the
batch doesn't have.
- Tweaked the "skipping ..." message that is output for already-
applied batched updates.
Wayne Davison [Tue, 29 Mar 2005 11:11:35 +0000 (11:11 +0000)]
Split report() into handle_stats() and output_report() so that (1)
the report happens after all --delete-after activity has ceased when
pulling, and (2) a batch-file created when pushing gets the stats
values written out prior to any end-of-run keep-alive packets.
Wayne Davison [Tue, 29 Mar 2005 10:57:31 +0000 (10:57 +0000)]
Changed maybe_emit_filelist_progress() and emit_filelist_progress()
to take an integer count instead of a struct file_list so that we
can pass in a file-list-count offset for delete's separate calls
to send_directory().
Wayne Davison [Tue, 29 Mar 2005 10:41:26 +0000 (10:41 +0000)]
Turn off do_progress during the file-update phase so that
--delete-during and --fuzzy don't get any superfluous
" N files..." lines output in the middle of the processing.
Wayne Davison [Sun, 27 Mar 2005 05:02:49 +0000 (05:02 +0000)]
- Fixed a bug in the saving of the --dirs option's state.
- Added the saving of the --compress option's state.
- Deal with the xfer_dirs var in a better way for pre-29 batches.
Wayne Davison [Thu, 24 Mar 2005 16:41:16 +0000 (16:41 +0000)]
- Don't complain if --dry-run is specified with --read-batch
or --write-batch.
- If --write-batch is combined with --dry-run, just disable
--write-batch (that avoids trying to create a batch file
and tells the user what would be transferred).
Wayne Davison [Tue, 15 Mar 2005 19:19:44 +0000 (19:19 +0000)]
- Made read_item_attrs() detect and reject a pre1/pre2 rsync (used
by both the sender and the receiver).
- Added an extra phase to the end of the transfer to better handle
delayed updates that have hard links.
Wayne Davison [Tue, 15 Mar 2005 19:19:38 +0000 (19:19 +0000)]
- Added an extra phase to the end of the transfer to better handle
delayed updates that have hard links.
- Send the new ITEM_DUMMY_BIT to the sender so that we can figure
out if the other side is pre1 or pre2 and let the receiver reject
it.
Wayne Davison [Mon, 14 Mar 2005 17:30:15 +0000 (17:30 +0000)]
Split the conditional-directory sending out of send_file_name() into
a new function: send_if_directory(). This lets the code that is
recursively descending through the directories make its list of a
dir's contents and close the DIR handle before recursing into the
subdirs. Also, the "recurse" var is just true/false once again.
Wayne Davison [Wed, 9 Mar 2005 23:46:28 +0000 (23:46 +0000)]
- Improved the error-checking for some delete_item() calls.
- Move the non-regular-file delete-check above the alt-basis check
where it belongs.
- Keep track of the real statret and real stat-struct for certain
alt-basis scenarios (e.g. partial-dir and fuzzy) so that we send
the right itemized change flags.
Wayne Davison [Wed, 9 Mar 2005 18:54:19 +0000 (18:54 +0000)]
We now handle the reading and writing of extra basis-file info: the
fnamecmp_type byte, and the extra name (currently used for fuzzy
processing and hard-link status).
Wayne Davison [Wed, 9 Mar 2005 18:54:16 +0000 (18:54 +0000)]
Got rid of the name-pipe, so we now read the fnamecmp_type data over
the socket for protocol >= 29, or handle it like the old days for
older protocol versions. This means that we now validate this extra
data for safety (such as the fuzzy filename).
Wayne Davison [Wed, 9 Mar 2005 18:54:12 +0000 (18:54 +0000)]
Made itemize() output the fnamecmp_type and the fuzzy name based on
the new ITEM_BASIS_TYPE_FOLLOWS and ITEM_XNAME_FOLLOWS flags. Got
rid of the name-pipe to the receiver.
Wayne Davison [Wed, 9 Mar 2005 04:00:20 +0000 (04:00 +0000)]
We need to mention any change to a directory, not just a time change.
Yeah, this isn't very consistent with how files are treated, but it's
backward compatible.
Wayne Davison [Sun, 6 Mar 2005 23:37:42 +0000 (23:37 +0000)]
Backed out the hack that reversed ITEM_REPORT_XATTRS with
ITEM_TRANSFER. Yes, it allowed some kludge code that made backward
compatibility seamless, but it made it impossible to remove the hack
in the future. This way, the backward compatibility is just
slightly inaccurate in the display of the first letter in the %i
output, and the only hack can be safely removed without causing
problems.
Wayne Davison [Sat, 5 Mar 2005 18:58:42 +0000 (18:58 +0000)]
- When --max-delete is exceeded, we now count how many deletions
would have happend, warn about the number skipped, and set
io_error to IOERR_DEL_LIMIT.
- When dry_run > 1 (which indicates that the destinationdir is
missing), skip deletions in that dir. This fixes a bug in a
copy that is creating the destination dir w/--delete enabled.
Wayne Davison [Sat, 5 Mar 2005 17:51:23 +0000 (17:51 +0000)]
Moved the end_progress() call from match.c to sender.c so that we
report progress on 0-length files when pushing files (the receiver
already called it, so we already produced progress on a 0-length
file when pulling).
Wayne Davison [Sat, 5 Mar 2005 16:42:52 +0000 (16:42 +0000)]
Don't try to determine the phase we're in by looking at the value
of csum_length -- it might have been computed to be SUM_LENGTH.
Instead, look at the "phase" variable directly.
Wayne Davison [Sat, 5 Mar 2005 04:34:06 +0000 (04:34 +0000)]
Added a hack that uses the ITEM_REPORT_XATTRS bit (which is the old
ITEM_UPDATING bit) to make us compatible when sending/receiving bits
to/from an earlier pre-release.
Wayne Davison [Sat, 5 Mar 2005 04:34:04 +0000 (04:34 +0000)]
Added a hack that sets the ITEM_REPORT_XATTRS bit (which is the old
ITEM_UPDATING bit) when ITEM_TRANSFER or ITEM_LOCAL_CHANGE is set.
This lets us interact compatibly when sending itemized bits to an
earlier pre-release.
Wayne Davison [Sat, 5 Mar 2005 04:34:01 +0000 (04:34 +0000)]
Swapped the bit-values for ITEM_TRANSFER and ITEM_REPORT_XATTRS.
This lets us be more compatible with the earlier pre-releases
with a better heuristic for backward-compatible itemized bits.
Wayne Davison [Sat, 5 Mar 2005 00:21:50 +0000 (00:21 +0000)]
- Make use of the new ITEM_* flags to mention when things were
updated locally instead of being updated remotely.
- Added support for outputting 'a' in the itemized log-output (for
future use in extended-attribute handling).
Wayne Davison [Sat, 5 Mar 2005 00:21:48 +0000 (00:21 +0000)]
- Made the sock_{in,out} variables non-static.
- Added hlink_list, a FIFO list of finished hard-link items.
- Made get_redo_num() check for finished hard-link items and
call the generator when they are found. This ensures that
we finish all the hard-link items by the time the MSG_DONE
is read and returned to the generator.
- Added get_hlink_num() to read the new hlink_list.