Wayne Davison [Mon, 3 Sep 2007 04:46:57 +0000 (04:46 +0000)]
The hashtable routines from hlink.c modified to have more generic names,
to support 2 sizes of key (32 and 64 bits), and to have a non-allocating
option for the find routine (returning NULL for no match).
Wayne Davison [Sat, 4 Aug 2007 17:47:08 +0000 (17:47 +0000)]
- Call the rsync algorithm differential rather than incremental.
- Don't refer to --files-from in the talk of incremental recursion,
since it might make people think that --files-from disables
incremental recursion for any recursively scanned directories.
Wayne Davison [Sat, 4 Aug 2007 17:47:02 +0000 (17:47 +0000)]
- Use the new XMIT_NON_XFER_DIR flag.
- Make sure that non-inc-recurse mode sets FLAG_XFER_DIR on all
the non-implied directories.
- Don't set FLAG_XFER_DIR on non-directories.
Wayne Davison [Sun, 15 Jul 2007 05:42:30 +0000 (05:42 +0000)]
We now take a negative value specified to --max-delete as being
synonymous with --max-delete=0. We also pass a request for 0
deletions to the server as --max-delete=-1. This ensures that we
can send a backward-compatible option to old and new versions alike.
Wayne Davison [Sat, 14 Jul 2007 21:25:51 +0000 (21:25 +0000)]
- When --omit-implied-dirs is specified and the creation of a directory
fails, we must make sure that the item we're skipping has a name that
is still inside the missing hierarchy by using a prefix matching func.
- We now handle the failure to remove a file to create a dir the same
way as a failed mkdir() (skipping the failed dir's contents).
Wayne Davison [Tue, 10 Jul 2007 14:21:59 +0000 (14:21 +0000)]
- Use "filename", not "file name".
- Say "regular file" instead of "file" when itemizing a list of
non-directory types.
- Try to avoid "file" in its generic sense, as it is hard to figure
out when it includes dirs and when it doesn't.
Wayne Davison [Sun, 8 Jul 2007 20:53:31 +0000 (20:53 +0000)]
- Define DEV_EXTRA_CNT and DIRNODE_EXTRA_CNT.
- Define and use ACL_BUMP(), fixing a clash between -A and -x in a
directory's data.
- Tweaked the F_DIR_*() defines to have more consistent names.
- Don't make F_SUM() return a char pointer that is const.
Wayne Davison [Sun, 8 Jul 2007 06:25:51 +0000 (06:25 +0000)]
- Incremental recursion mode does not process the dirs while scanning a
file list's contents. Instead, it handles a parent dir prior to each
extra file list. This makes the dir-processing order the same in
protocol 30 as it is in earlier protocols.
- Moved the permission-fudging code for dirs into recv_generator() to
make the new protocol-30 dir-handling logic easier.
Wayne Davison [Sun, 8 Jul 2007 06:25:42 +0000 (06:25 +0000)]
- The sending side now sets the parent_ndx value in each file list.
- Leave a 1-entry gap between incremental file lists so that we can use
that index value to refer to the parent directory of each file list.
- Set and use the new ndx_end value in the file list. The incremental
recursion mode omits dirs in this value (except in the first list)
since the generator will be using the new "gap" ndx value to process
each parent dir.
Wayne Davison [Sat, 7 Jul 2007 16:01:59 +0000 (16:01 +0000)]
The length check in make_file() doesn't need to subtract pathname_len
anymore, as the sender code never concatenates the F_PATHNAME() value
with the dirname+basename string these days.
Wayne Davison [Mon, 2 Jul 2007 22:11:23 +0000 (22:11 +0000)]
Switch the checking of preserve_[ug]id var to checking [ug]id_ndx var
when the code is about to use the [ug]id_ndx value as an index (since
this saves a memory reference).
Wayne Davison [Mon, 2 Jul 2007 21:29:49 +0000 (21:29 +0000)]
Make option variables a little clearer by using separate FOO_ndx
values to index into the file-list extra-attribute array instead
of abusing the preserve_FOO variables.
Wayne Davison [Tue, 29 May 2007 04:19:47 +0000 (04:19 +0000)]
Unified the file-list pool used in incremental recursion mode so that
we use less memory, especially in small transfers. As file lists are
discarded, we use the new pool_boundary() and pool_free_old() functions
to discard pool extents that are no longer needed.
Wayne Davison [Tue, 29 May 2007 00:52:08 +0000 (00:52 +0000)]
- Fixed a bug where a pool_free() on the most-recently allocated pool
item was trying to make that memory available to the pool, but it
failed to adjust the right variable.
- Fixed a bug in pool_free() where the return of the entire live
extent back to unallocated status did not obey POOL_CLEAR.
- Use the new() and new_array() functions instead of malloc().
- Changed the sqew variable to skew.
- Some other minor formatting tweaks.