Commit Graph

3090 Commits

Author SHA1 Message Date
Wayne Davison
7cacd47edd Changed the size_t variables into int32 variables. 2005-02-14 08:12:22 +00:00
Wayne Davison
e461b9bed4 Don't let --fuzzy be used with a protocol_version < 29. 2005-02-14 02:47:44 +00:00
Wayne Davison
3723c04850 Mention --fuzzy. 2005-02-14 02:41:35 +00:00
Wayne Davison
73273075c8 Added code to read a fuzzy-basis name from the generator. 2005-02-14 02:41:30 +00:00
Wayne Davison
8e85be0a16 Added handling for fuzzy-basis scanning. When a fuzzy filename is
chosen, the name is sent down the name-pipe to the receiver.
2005-02-14 02:41:27 +00:00
Wayne Davison
37802f40dc - If send_file_name() gets f set to -2, it skips the local filter rules.
- Added get_dirlist(), which returns a file_list structure for the
  desired directory, optionally with local filter rules disabled.
2005-02-14 02:41:23 +00:00
Wayne Davison
06b96ffa86 Set need_name_pipe if --fuzzy was specified. 2005-02-14 02:41:18 +00:00
Wayne Davison
c4ed1487f9 Added parsing for the --fuzzy (-y) option. 2005-02-14 02:41:15 +00:00
Wayne Davison
e64ae6d766 Added find_filename_suffix() and fuzzy_distance(). 2005-02-14 02:41:10 +00:00
Wayne Davison
5b4837552b Document the --fuzzy (-y) option. 2005-02-14 02:41:05 +00:00
Wayne Davison
d2004814f0 Changed #if to use "defined". 2005-02-14 02:34:01 +00:00
Wayne Davison
bf0c5bec45 If f_name_cmp() discovers that two directory strings compare to an
equal value without being equal pointers, substitute one of the
pointers for the other in the file list.  This optimizes future name
comparisons.  Note also that this optimization won't be triggered
very often (because rsync tends to send the names grouped by dir-
name at transmission time), but it's nice to be able to assume that
all files in the same dir have identical dir-name pointers after the
qsort is finished.
2005-02-14 01:29:17 +00:00
Wayne Davison
0dd046d36f Don't check defined-ness of SIZEOF_OFF64_T. 2005-02-14 00:58:10 +00:00
Wayne Davison
4f5b0756df John E. Malmberg convinced me to standardize on #ifs for defined
values instead of non-zero.
2005-02-14 00:53:43 +00:00
Wayne Davison
fe1c19dcdf In clean_flist(), if a duplicate is found for a dir and a non-dir,
always dump the non-dir (because the dir might have contents in
the list).
2005-02-13 22:48:38 +00:00
Wayne Davison
24b2096e86 The dir vs non-dir test now assumes the dir wins. 2005-02-13 22:48:35 +00:00
Wayne Davison
86e97e178d Mention the new sorting method for protocol 29. 2005-02-13 22:37:29 +00:00
Wayne Davison
905d906d69 Added a test for the merging of a dir and a non-dir with the same name. 2005-02-13 22:01:15 +00:00
Wayne Davison
abce74bb93 Added some missing commas in some option summary lines. 2005-02-13 21:50:55 +00:00
Wayne Davison
f5db099330 - Made receive_file_entry() return the file_struct pointer instead
of storing it into the files[] array.
- Made flist_find() return "no match" if the found item differs in
  its directory-ness from the search item.
- Changed f_name_cmp() to sort sub-directories after non-directories
  for each directory's contents.  This makes things like the upcoming
  --fuzzy patch easier to get right.
- One complicating factor is that clean_flist() needed some extra
  code to ensure that a directory doesn't duplicate a non-directory
  of the same name.
- Make sure that the "strip_root" code in clean_flist() (for relative
  paths) strips off all leading slashes.
2005-02-13 21:15:47 +00:00
Wayne Davison
122d1771db Improved the call to f_name_cmp(). 2005-02-13 20:06:18 +00:00
Wayne Davison
8824e2cee4 Changed the prefix on the fnc_state enums. 2005-02-13 10:23:56 +00:00
Wayne Davison
8a6f3fead8 Improved the summary for the -F option. 2005-02-13 05:45:42 +00:00
Wayne Davison
9c71f56a25 Improved the help text for -F. 2005-02-13 05:44:29 +00:00
Wayne Davison
f924946eba Improved the description of the --compress (-z) option. 2005-02-12 22:22:14 +00:00
Wayne Davison
32a5edf43f Improved the documentation of the --compress (-z) option. 2005-02-12 22:21:45 +00:00
Wayne Davison
9a338344da Forgot to make sure that the dir-times on the chkdir got synced
in the newest test case.
2005-02-12 21:22:21 +00:00
Wayne Davison
df337831dc When --dry-run is set, note when a directory is missing and avoid
trying to stat() any items inside that dir's hierarchy.  This fixes
a bug where a symlink to a dir getting replaced by a dir with
identical contents to the dir at the other end of the symlink would
not report the updated files in the new hierarchy. (See bug #1673)
2005-02-12 21:18:58 +00:00
Wayne Davison
bb558f6791 Some more improvements to exercise rule-restricted merge files
(i.e. exclude patterns only) and side-restricted filter rules.
2005-02-12 20:45:39 +00:00
Wayne Davison
22558cdd7e Improved checkit() and rsync_ls_lR() to work with filenames that
might have spaces.
2005-02-12 20:25:12 +00:00
Wayne Davison
28c54e81c1 Mention the protocol change for --delete-excluded. 2005-02-12 19:52:40 +00:00
Wayne Davison
0dfffb88e1 Document the new filter rule flags for sender-/receiver-specific
rules.
2005-02-12 19:52:34 +00:00
Wayne Davison
ed243f8c29 - Added modifiers for the include/exclude rules that makes them
apply to the indicated (sender/receiver) side.
- Added the hide/show and protect/risk filter rules as an alternate
  way to specify sender-/receiver-specific include/exclude rules.
- send_rules() now allows f_out to be -1 to indicate that the list
  should be scanned but not sent.
- send_rules() now filters the list to remove any items that don't
  apply to the current side (after sending the item to the other
  side when f_out != -1).
- {send,recv}_filter_list() now transfer the list, even when the
  receiver is the server and --delete-excluded was specified (the
  exchanged list is appropriately filtered, of course).
- recv_filter_list() uses send_rules() to trim non-applicable rules
  when we're a local-server (because we got our filter list without
  send/recv calls when fork() duplicated it).
2005-02-12 19:52:26 +00:00
Wayne Davison
a427e8938a - Define MATCHFLG_SENDER_SIDE and MATCHFLG_RECEIVER_SIDE.
- Updated MATCHFLGS_FROM_CONTAINER.
2005-02-12 19:52:22 +00:00
Wayne Davison
cc25d29132 We don't need to avoid the local filter list in send_file_name()
when --delete-excluded is set because our list has been trimmed to
only include rules that apply in the current mode.
2005-02-12 19:52:18 +00:00
Wayne Davison
134f43385b - Since send_file_list() is no longer called with f == -1, got rid
of all the conditional code to support that.
- Improved the comment before send_directory() to indicate that it
  gets called with f == -1 from delete_in_dir().
2005-02-12 18:40:15 +00:00
Wayne Davison
a5a264842e Don't use underscores in the example filter rules. 2005-02-11 23:16:41 +00:00
Wayne Davison
eed47b6b9c Made "i" a size_t in receive_sums(). 2005-02-11 20:46:55 +00:00
Wayne Davison
3841a04e88 A minor tweak for the dry_run logic. 2005-02-11 20:26:08 +00:00
Wayne Davison
9eef8f0b73 Improved the "refuse options" section, including an update
to the section that talked about --del being a popt alias
(which is no longer true).
2005-02-11 10:52:50 +00:00
Wayne Davison
c258230722 - Several improvements in describing how options imply other options.
- Improved --partial-dir.
2005-02-11 10:51:25 +00:00
Wayne Davison
345e0988cb Changed rule_match() to rule_strcmp(). Likewise for the
define RULE_MATCH() being changed into RULE_STRCMP().
2005-02-11 10:47:43 +00:00
Wayne Davison
3671987f4d - Added some new refused_* variables that note if certain options
have been refused on the server daemon.  This allows us to reject
  implied options (e.g. if --partial is refused and -P specified).
- Changed the handling of the --delete refusals from the old idiom
  of upgrading "delete" to "delete*" into the new idiom of checking
  if refused_delete is set when we determine --delete was implied.
- Changed the --del option from a popt alias into a normal option.
- Mark all the daemon options as refused when a daemon is parsing
  the over-the-socket options.
- Created a new function, create_refuse_error(), which is now called
  from all the spots that check for refused options.
- Don't call clean_fname() on an empty string -- either reject it
  or handle it without erroneously expanding the string.
- If --delay-updates was specified without a --partial-dir option,
  don't send the default "--partial-dir=.~tmp~" option if the server
  is the receiver -- just let it default.
2005-02-11 10:42:55 +00:00
Wayne Davison
5aa7b20a3e Have partial_dir_fname() also check if the dir is excluded
by the server, not just the partial file.
2005-02-11 09:58:31 +00:00
Wayne Davison
68795c640b If a --delay-update can't use the partial-dir (e.g. if a server
daemon excludes the dir or file), update the file without delay.
2005-02-11 09:56:28 +00:00
Wayne Davison
4f1f94d1de Improved the --modify-window description. 2005-02-09 17:08:23 +00:00
Wayne Davison
0f7e31f7d7 Improved several items and added a new section describing what is
different for protocol version 29.
2005-02-09 04:45:36 +00:00
Wayne Davison
2f3cad893b - Decided that flist_find() should be public, not static.
- Modified f_name_cmp() so that, beginning with protocol 29,
  it will guarantee that a directory name will sort one slot
  before its contents (prior versions could sort other items
  in between in rare instances).
2005-02-09 02:36:17 +00:00
Wayne Davison
e79666267d Also test the new long-named filter rules. 2005-02-08 19:30:07 +00:00
Wayne Davison
d91de04671 Mention the new long-name filter rules. 2005-02-08 19:06:30 +00:00