Commit Graph

  • 06b96ffa86 Set need_name_pipe if --fuzzy was specified. Wayne Davison 2005-02-14 02:41:18 +00:00
  • c4ed1487f9 Added parsing for the --fuzzy (-y) option. Wayne Davison 2005-02-14 02:41:15 +00:00
  • e64ae6d766 Added find_filename_suffix() and fuzzy_distance(). Wayne Davison 2005-02-14 02:41:10 +00:00
  • 5b4837552b Document the --fuzzy (-y) option. Wayne Davison 2005-02-14 02:41:05 +00:00
  • d2004814f0 Changed #if to use "defined". Wayne Davison 2005-02-14 02:34:01 +00:00
  • 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. Wayne Davison 2005-02-14 01:29:17 +00:00
  • 0dd046d36f Don't check defined-ness of SIZEOF_OFF64_T. Wayne Davison 2005-02-14 00:58:10 +00:00
  • 4f5b0756df John E. Malmberg convinced me to standardize on #ifs for defined values instead of non-zero. Wayne Davison 2005-02-14 00:53:43 +00:00
  • 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). Wayne Davison 2005-02-13 22:48:38 +00:00
  • 24b2096e86 The dir vs non-dir test now assumes the dir wins. Wayne Davison 2005-02-13 22:48:35 +00:00
  • 86e97e178d Mention the new sorting method for protocol 29. Wayne Davison 2005-02-13 22:37:29 +00:00
  • 905d906d69 Added a test for the merging of a dir and a non-dir with the same name. Wayne Davison 2005-02-13 22:01:15 +00:00
  • abce74bb93 Added some missing commas in some option summary lines. Wayne Davison 2005-02-13 21:50:55 +00:00
  • 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. Wayne Davison 2005-02-13 21:15:47 +00:00
  • 122d1771db Improved the call to f_name_cmp(). Wayne Davison 2005-02-13 20:06:18 +00:00
  • 8824e2cee4 Changed the prefix on the fnc_state enums. Wayne Davison 2005-02-13 10:23:56 +00:00
  • 8a6f3fead8 Improved the summary for the -F option. Wayne Davison 2005-02-13 05:45:42 +00:00
  • 9c71f56a25 Improved the help text for -F. Wayne Davison 2005-02-13 05:44:29 +00:00
  • f924946eba Improved the description of the --compress (-z) option. Wayne Davison 2005-02-12 22:22:14 +00:00
  • 32a5edf43f Improved the documentation of the --compress (-z) option. Wayne Davison 2005-02-12 22:21:45 +00:00
  • 9a338344da Forgot to make sure that the dir-times on the chkdir got synced in the newest test case. Wayne Davison 2005-02-12 21:22:21 +00:00
  • 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) Wayne Davison 2005-02-12 21:18:58 +00:00
  • bb558f6791 Some more improvements to exercise rule-restricted merge files (i.e. exclude patterns only) and side-restricted filter rules. Wayne Davison 2005-02-12 20:45:39 +00:00
  • 22558cdd7e Improved checkit() and rsync_ls_lR() to work with filenames that might have spaces. Wayne Davison 2005-02-12 20:25:12 +00:00
  • 28c54e81c1 Mention the protocol change for --delete-excluded. Wayne Davison 2005-02-12 19:52:40 +00:00
  • 0dfffb88e1 Document the new filter rule flags for sender-/receiver-specific rules. Wayne Davison 2005-02-12 19:52:34 +00:00
  • 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). Wayne Davison 2005-02-12 19:52:26 +00:00
  • a427e8938a - Define MATCHFLG_SENDER_SIDE and MATCHFLG_RECEIVER_SIDE. - Updated MATCHFLGS_FROM_CONTAINER. Wayne Davison 2005-02-12 19:52:22 +00:00
  • 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. Wayne Davison 2005-02-12 19:52:18 +00:00
  • 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(). Wayne Davison 2005-02-12 18:40:15 +00:00
  • a5a264842e Don't use underscores in the example filter rules. Wayne Davison 2005-02-11 23:16:41 +00:00
  • eed47b6b9c Made "i" a size_t in receive_sums(). Wayne Davison 2005-02-11 20:46:55 +00:00
  • 3841a04e88 A minor tweak for the dry_run logic. Wayne Davison 2005-02-11 20:26:08 +00:00
  • 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). Wayne Davison 2005-02-11 10:52:50 +00:00
  • c258230722 - Several improvements in describing how options imply other options. - Improved --partial-dir. Wayne Davison 2005-02-11 10:51:25 +00:00
  • 345e0988cb Changed rule_match() to rule_strcmp(). Likewise for the define RULE_MATCH() being changed into RULE_STRCMP(). Wayne Davison 2005-02-11 10:47:43 +00:00
  • 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. Wayne Davison 2005-02-11 10:42:55 +00:00
  • 5aa7b20a3e Have partial_dir_fname() also check if the dir is excluded by the server, not just the partial file. Wayne Davison 2005-02-11 09:58:31 +00:00
  • 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. Wayne Davison 2005-02-11 09:56:28 +00:00
  • 4f1f94d1de Improved the --modify-window description. Wayne Davison 2005-02-09 17:08:23 +00:00
  • 0f7e31f7d7 Improved several items and added a new section describing what is different for protocol version 29. Wayne Davison 2005-02-09 04:45:36 +00:00
  • 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). Wayne Davison 2005-02-09 02:36:17 +00:00
  • e79666267d Also test the new long-named filter rules. Wayne Davison 2005-02-08 19:30:07 +00:00
  • d91de04671 Mention the new long-name filter rules. Wayne Davison 2005-02-08 19:06:30 +00:00
  • 64b761c19a Allow a ',' to prefix the MODIFIERS for a single-letter filter rule. Wayne Davison 2005-02-08 18:47:25 +00:00
  • a1ac8edd66 - Added long-name filter rules. - Only parse the "!" token when MATCHFLG_NO_PREFIXES is set if MATCHFLG_CVS_IGNORE is also set. Wayne Davison 2005-02-08 18:33:16 +00:00
  • 1dca857b5b Fixed a typo. Wayne Davison 2005-02-07 20:46:42 +00:00
  • f8cd88dbd1 - Added more calls to safe_fname(). - Improved safe_fname() so that it changes all non-printable chars into '?'s, and accomodates more simultaneous (and longer) names. Wayne Davison 2005-02-07 20:41:43 +00:00
  • 71903f601a Added missing calls to safe_fname() and full_fname(). Wayne Davison 2005-02-07 20:40:18 +00:00
  • 719bc858b5 Made NS define make use of safe_fname(). Wayne Davison 2005-02-07 20:39:13 +00:00
  • a6126d678b Added missing call to safe_fname(). Wayne Davison 2005-02-07 20:38:56 +00:00
  • 4875d6b64d Adding more calls to safe_fname(). Wayne Davison 2005-02-07 20:36:43 +00:00
  • 54b4059856 Needed to call safe_fname() when listing the remote names. Wayne Davison 2005-02-07 19:40:31 +00:00
  • 38059f8e8e One more tweak. Wayne Davison 2005-02-06 07:24:42 +00:00
  • bb5f4e7285 A few tweaks to the FILTER RULES section, including a mention of using the +/- modifiers on merge-file rules. Wayne Davison 2005-02-06 07:16:19 +00:00
  • 448797a1e6 Fixed an off-by-one error in the prefix-length checking in get_rule_prefix(). Wayne Davison 2005-02-05 06:53:20 +00:00
  • a261103ce0 Improved the name of a variable. Wayne Davison 2005-02-05 05:30:06 +00:00
  • 7b82b5adb3 Mention a couple more changes. Wayne Davison 2005-02-05 01:38:19 +00:00
  • 397a344364 Added the "C" modifier to the itemized list of +/- modifiers. Wayne Davison 2005-02-05 00:03:46 +00:00
  • bafa48759f Mention the new --filter=-C syntax that lets you position the default CVS rules within your other filter rules. Wayne Davison 2005-02-04 23:57:26 +00:00
  • 46db185081 - Moved get_cvs_excludes() up above its only use and made it static. - Changed get_cvs_excludes() to make an mflags arg. Wayne Davison 2005-02-04 22:32:17 +00:00
  • 1412da7c32 If we're a "local server" (i.e. we just forked a server for a local transfer), don't duplicate all the filter rules that we already know about in the forked process. Wayne Davison 2005-02-04 21:54:02 +00:00
  • d09e800a0e Fixed the way get_rule_prefix() turns the MATCHFLG_WORD_SPLIT flag back into a modifier character. Wayne Davison 2005-02-04 21:16:39 +00:00
  • 53b417e414 - Added MATCHFLG_CVS_IGNORE. - Made the match_flags var a uint32. Wayne Davison 2005-02-04 21:13:12 +00:00
  • 57dee64e82 - Moved the cvs_exclude checks into send_filter_list() and recv_filter_list(). Because of this, we never skip these calls anymore, though read-batch processing indicates that the list should not really be sent by setting f_out to -1. - Moved the definintion of the "local_server" variable here from options.c. Wayne Davison 2005-02-04 21:13:09 +00:00
  • fdc795015f - Changed filter_rule() to add_rule(). - Improved the debug info coming from add_rule(). - Changed add_filter() to parse_rule() and add_filter_file() to parse_filter_file(). - Changed get_filter_tok() to parse_rule_tok(). - Made the mflags a uint32. - Added an extra arg to get_rule_prefix() to indicate if we're building the options for transmission or other purposes. - The 'C' modifier can now be applied to a '-' rule, so it now sets a new flag: MATCHFLG_CVS_IGNORE. - The send_filter_list() and recv_filter_list() functions now handle all the logic needed to do the right thing for -C (this used to be in main.c). Wayne Davison 2005-02-04 21:13:06 +00:00
  • 3a5e9224d0 - Changed add_filter() to parse_rule() and add_filter_file() to parse_filter_file(). - Moved the definintion of the "local_server" variable into main.c. Wayne Davison 2005-02-04 21:13:03 +00:00
  • ebfd1a1cf7 Changed add_filter() to parse_rule() and add_filter_file() to parse_filter_file(). Wayne Davison 2005-02-04 21:13:00 +00:00
  • dd667c2301 Call get_rule_prefix() with its new arg. Wayne Davison 2005-02-04 21:12:56 +00:00
  • d727f0ff48 Fixed the MODIFIERS_MERGE_FILE define. Wayne Davison 2005-02-04 00:48:18 +00:00
  • eb9b2e53c8 Changed delete_missing() to not limit the use of DEL_FORCE_RECURSE to just --delete-during now that the other delete routines are using delete_in_dir(). Wayne Davison 2005-02-03 19:19:39 +00:00
  • b6f06b8e8b Added an mflags arg to get_filter_tok(), add_filter_file(), and add_filter(). This made for less flag conversion between various MATCHFLG_* and XFLG_* values. It also made it easy to fix a bug in the handling of no-prefix per-directory include/exclude files. We also use the new XFLG_OLD_PREFIXES and MATCHFLGS_FROM_CONTAINER defines. Wayne Davison 2005-02-03 19:00:20 +00:00
  • 0a68f869d7 Call add_filter() and add_filter_file() with their new flag args. Wayne Davison 2005-02-03 19:00:17 +00:00
  • 3b2461cf2e - Got rid of a bunch of XFLG_* options. - Added XFLG_OLD_PREFIXES and MATCHFLGS_FROM_CONTAINER defines. Wayne Davison 2005-02-03 19:00:13 +00:00
  • 346402ddbf Use the new negated exclude to filter out all non-dirs in a few of the rsync commands. Wayne Davison 2005-02-03 03:45:24 +00:00
  • 44d60d5f83 Document the new "!" modifier for include/exclude filter rules (to negate the match). Wayne Davison 2005-02-03 03:37:02 +00:00
  • f2ae9e8583 Implemented a "!" modifier for filter rules that lets a rule trigger on a non-matching pattern. Wayne Davison 2005-02-03 03:36:58 +00:00
  • 7c8e23bd9f Added MATCHFLG_NEGATE. Wayne Davison 2005-02-03 03:36:55 +00:00
  • 0752721dc3 Mention the latest delete optimization. Wayne Davison 2005-02-03 02:01:22 +00:00
  • 68a94ac30f Changed delete_files() to use the delete_in_dir() function, which saves a ton of memory for a large set of files. Wayne Davison 2005-02-03 02:01:20 +00:00
  • ee3751c8d7 - We now separate the user-specified top-dir flag (via the restored FLAG_TOP_DIR) from the del-in-this-directory flag (FLAG_DEL_HERE). This was needed to properly handle -x in delete_in_dir(). - The delete_in_dir() function takes a slightly changed set of args. - Always set the FLAG_DEL_HERE flags, not just for --delete-during. Wayne Davison 2005-02-03 02:01:17 +00:00
  • ec33e0e6bd - Changed {XMIT,FLAG}_DEL_START back to {XMIT,FLAG}_TOP_DIR. - Define FLAG_DEL_HERE. Wayne Davison 2005-02-03 02:01:14 +00:00
  • 31937d363b Call delete_in_dir() with its new args. Wayne Davison 2005-02-03 02:01:11 +00:00
  • 8982a89b24 In hlink_compare(), call f_name_cmp() directly instead of using file_compare(). Wayne Davison 2005-02-03 01:19:03 +00:00
  • 0492fdfb2e - Improved some comments. - Changed the index passed to recv_generator() from "i" to "ndx". - Call delete_in_dir() with its new args. - During the redo phase, clear a bunch of options that might interfere with the generator deciding it needs to redo the file (for instance, --update-only could have interfered if --partial was specified). Wayne Davison 2005-02-03 01:19:01 +00:00
  • 14698a3a1a - Moved an optimization from file_compare() into f_name_cmp() (the one that avoids doing a string-compare on two identical char pointers), making it just a wrapper for f_name_cmp(). Also made file_compare() static because everyone now calls f_name_cmp() directly. - Improved the flist summary that is output at high verbosity. - Improved delete_in_dir() to better handle the push/pop semantics based on the depth value that is now passed in as an arg (so that we don't have to parse it out of the paths each time). Wayne Davison 2005-02-03 01:18:58 +00:00
  • 8c2ffaf095 - If recv_files() is sent the index of a directory, complain about it and die. - Moved a few code snippets in recv_files() into better locations. Wayne Davison 2005-02-03 00:19:40 +00:00
  • afd72c78bd If the generator sends us the index of a directory, generate an error and die. Wayne Davison 2005-02-02 17:15:22 +00:00
  • 6bf822649b - Fixed a problem with the setting of the --recurse option from the batch file. - Save the state of the --dirs option in the batch flags in a way that is compatible with older protocol versions. Wayne Davison 2005-02-02 09:40:45 +00:00
  • 67dde16163 In read_sum_head: output the who_am_i() info in our error messages. Wayne Davison 2005-02-01 16:42:01 +00:00
  • f1d5ba4005 Set am_sender to -1 until the end of the option parsing. This lets who_am_i() output better values for the command-line --filter/--include/--exclude options. Wayne Davison 2005-02-01 09:46:42 +00:00
  • 794b0a037f Changed who_am_i() to output "server" or "client" when am_sender is negative. This will only occur during the startup phase before we know if we're the sender or not (e.g. when parsing client-side --filter/--exclude/--include options). Wayne Davison 2005-02-01 09:45:09 +00:00
  • c32edbe02e Make sure the %f expansion handles the new dir.root properly. Wayne Davison 2005-02-01 09:23:59 +00:00
  • f3c3ed44e6 - Made flist_find() and receive_file_entry() static functions. - Changed receive_file_entry() args. - We now store the directory depth into file->dir.depth when receiving the file list. This will be used to aid in the traversal of the file list on the receiving side for things such as the future --fuzzy option and better --delete-during processing. - Fixed a bug when -R was used with "." as a source directory: subdirectories were not being promoted to FLAG_DEL_START when --delete-during was specified. - Refer to the old basedir variable as dir.root. - Got rid of the first-push code -- I decided that it wasn't the right thing to do for per-dir merge-file processing. - Improved the flist_find() function to make it a little more optimal. The new code no longer needs the inline function flist_up(). - In clean_flist() we now set two new values in the flist struct: "low" and "high". These are used by the new flist_find(). - Tweaked the output_flist() function to output each entry's flags and to output the directory-depth on the receiving side in place of the directory-root (which is still output on the sending side). Wayne Davison 2005-02-01 09:21:32 +00:00
  • f805730493 - Put "basedir" into a union "dir" and named it "root". The other member of the union is "depth". - Added members "low" and "high" to the file list structure (which are set when the list is cleaned). - Got rid of the flist_up() inline function. Wayne Davison 2005-02-01 09:21:30 +00:00
  • 2b1366635d Refer to the old basedir variable as dir.root. Wayne Davison 2005-02-01 09:21:28 +00:00
  • 42f23f479d Fixed a typo in a variable name. Wayne Davison 2005-02-01 08:12:00 +00:00
  • 62bf783f06 Changed the "s" modifier to "w" for word-splitting tokens from a merge filter file. Also sprinkled some bf(...) macros into that section. Wayne Davison 2005-01-31 23:57:35 +00:00
  • 0b2901b72d Changed the "s" modifier to "w" for a word-splitting merge file. Wayne Davison 2005-01-31 23:51:54 +00:00
  • faa82484a5 - Mark references to command-line switches with the bf(...) macro. - Changed some verb(...) macros to use other yodl idioms because yodl inserts way too much vertical whitespace surrounding the item. - Some items weren't indenting enough in the manpage, though they were indenting fine in the HTML version, so used some creative idioms to get things to render well in both. - Got rid of some empty lines in lists. - Made several quote(...) items also tt(...). Wayne Davison 2005-01-31 23:41:08 +00:00