Wayne Davison [Sat, 15 Sep 2007 15:40:57 +0000 (15:40 +0000)]
- Parse hard-link info as soon as we get it in inc_recurse mode.
- Improve the chances of the generator finding a match for a
hard-link file in inc_recurse mode.
Wayne Davison [Mon, 10 Sep 2007 06:15:25 +0000 (06:15 +0000)]
- Simplified the flist-spanning gnum logic in match_gnums().
- Don't use hlink_flist in hard_link_check().
- Made the prev_name logic in hard_link_check() better.
- Added an "ndx" arg to the finish_hard_link() call. Also, set the
prev value of any prior entries to the first finished item (which
ensures that any item that follows a re-shuffled item (which was
waiting for a transferred file to finish) can find the FIRST+DONE
item.
Wayne Davison [Sun, 9 Sep 2007 07:53:15 +0000 (07:53 +0000)]
- If the user specifies a source arg with a hostspec in it in a local-
source transer, complain and exit. This can help to find option
problems were an arg to an option turns into a local-source arg,
and the real remote-source arg will now get rejected rather than
attempting to find a file with a colon in its name.
- We now support the ability to specify more than one remote arg using
the ":FILENAME" idiom for additional remote filenames.
- If the --protect-args (-s) option was specified, we send just the
"--server -s" options to the remote rsync when it is starting, and
then the real args are sent over the socket.
Wayne Davison [Sun, 9 Sep 2007 07:53:12 +0000 (07:53 +0000)]
- Renamed read_line() to be read_line_old().
- Renamed read_filesfrom_line() to read_line() and added args to allow
the caller to control how it works.
- Added a new function, read_args(), that reads args from a file
descriptor (using read_line()) and expands any wildcards in them.
This function has relocated daemon code (from clientserver.c) and
is also used by the new --protect-args (-s) option. The new code
also got rid of an extra strdup() that wasn't needed.
Wayne Davison [Sun, 9 Sep 2007 07:53:05 +0000 (07:53 +0000)]
- Made start_socket_client() and start_inband_exchange() take a variable
number of remote args.
- We now exchange a "VERSION.SUBVERSION" value in the initial @RSYNCD
message. This is backward compatible with pre-protocol 30 rsyncs,
and fixes a problem where rsync daemons weren't checking if they were
speaking a compatible pre-release protocol.
- Moved the protocol-handling code (which was in two places) into a new
function: exchange_protocols().
- Protocol 30 now sends/receives the daemon args using NULLs as a separator
rather than a newline.
- Moved the arg-reading code into a new function in io.c: read_args().
Wayne Davison [Tue, 4 Sep 2007 06:57:57 +0000 (06:57 +0000)]
Added a test combining -H with -c and a hard-linked file that has only
one instance inside the copy hierarchy. (Used to fail with protocol 29
or --no-ir.)
Wayne Davison [Mon, 3 Sep 2007 21:32:21 +0000 (21:32 +0000)]
- Got rid of caveat about -H not working with incremental recursion.
- Talk about how inc_recurse affects -H.
- Mention --no-inc-recursive and --no-ir options.
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.