Wayne Davison [Thu, 3 Feb 2005 02:01:17 +0000 (02:01 +0000)]
- 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 [Thu, 3 Feb 2005 01:19:01 +0000 (01:19 +0000)]
- 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 [Thu, 3 Feb 2005 01:18:58 +0000 (01:18 +0000)]
- 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 [Wed, 2 Feb 2005 09:40:45 +0000 (09:40 +0000)]
- 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 [Tue, 1 Feb 2005 09:46:42 +0000 (09:46 +0000)]
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 [Tue, 1 Feb 2005 09:45:09 +0000 (09:45 +0000)]
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 [Tue, 1 Feb 2005 09:21:32 +0000 (09:21 +0000)]
- 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 [Tue, 1 Feb 2005 09:21:30 +0000 (09:21 +0000)]
- 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 [Mon, 31 Jan 2005 23:41:08 +0000 (23:41 +0000)]
- 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 [Sun, 30 Jan 2005 10:06:18 +0000 (10:06 +0000)]
The --delete-during processing only happens during the first phase
(not the redo phase). We also call delete_in_dir(NULL, NULL) to
make sure that all the local filter files get popped.
Wayne Davison [Sun, 30 Jan 2005 09:12:55 +0000 (09:12 +0000)]
- Now delete_in_dir() calls send_directory(), not send_file_name().
- Moved the local-list push/pop code out of send_directory() so that
the callers (send_file_name() and delete_in_dir()) can call the
push/pop functions themselves. This is in preparation for
delete_in_dir() getting fully correct push/pop semantics (for
its --delete-during handling of per-dir filter files).
Wayne Davison [Sat, 29 Jan 2005 22:35:44 +0000 (22:35 +0000)]
- Improved the handling of -x with -K.
- Changed delete_in_dir() to only be used by the --delete-during
option.
- Added delete_missing() that is used by both delete_files() and
delete_in_dir().
- delete_files() still uses send_file_list(), but delete_in_dir()
now uses send_file_name().
Wayne Davison [Sat, 29 Jan 2005 20:48:17 +0000 (20:48 +0000)]
- Renamed make_filter() to filter_rule().
- Added the "/" modifier to the -/+ filter rules to allow the
rule to specify an absolute path (sets MATCHFLG_ABS_PATH).
- Added the passing of the xflgags to filter_rule() and key off
XFLG_ANCHORED2ABS to prepend the current dirbuf value (was
keing off MATCHFLG_ABS_PATH).
- We no longer allow a '=' to separate the filter rule from its
arg (just a single space or an underscore).
- For triple verbose levels, mention when we look for a filter
file even if we don't find it (used to only mention the file
when it was found).
- A chrooted daemon process now includes /.cvsignore (inside the
chrooted hierarchy) instead of $HOME/.cvsignore.
Wayne Davison [Fri, 28 Jan 2005 18:50:54 +0000 (18:50 +0000)]
- Changed the main core of system include files to use the same "#if"
idioms that configure uses.
- Use "#if" (not "#ifdef") for configure-defined macros.
- Use "#if !" (not "#ifndef") for configure-defined macros.
Wayne Davison [Fri, 28 Jan 2005 17:10:16 +0000 (17:10 +0000)]
- Moved read_only variable here from options.c
- Set read_only to 1 if the module is read-only.
- Make sure that the verbose level is 0 before we parse the client's
options.
Wayne Davison [Fri, 28 Jan 2005 07:39:09 +0000 (07:39 +0000)]
Added back support for the --delete-before option so that future
verions of rsync can more easily change the default that --delete
implies and still support explicit --delete-before functionality
when interacting with older versions.
Wayne Davison [Fri, 28 Jan 2005 06:45:16 +0000 (06:45 +0000)]
- Switched the int64 code over to using the improved SIZEOF_*
macros.
- Define SIZEOF_INT64 to a value that is useable at compile time.
- Got rid of INT64_IS_OFF_T.
Wayne Davison [Fri, 28 Jan 2005 02:00:40 +0000 (02:00 +0000)]
- Made some of the tests work better when cross-compiling.
- Added descriptions for all config.h variables that had none.
- Changed HAVE_UNSIGNED_CHAR to SIGNED_CHAR_OK.
- Got rid of (the unused) HAVE_SHORT_INO_T.
- Changed version to 2.6.4cvs (long overdue).
Wayne Davison [Tue, 25 Jan 2005 12:13:53 +0000 (12:13 +0000)]
- Use the "--filter=._-" option instead of --exclude-from=- if the
protocol being saved is >= 29.
- Call the new get_rule_prefix() function to figure out the right
rule prefix.
- Strip out the --filter and -f options from the cached command-line.
Wayne Davison [Tue, 25 Jan 2005 12:10:31 +0000 (12:10 +0000)]
- Moved the code that turns rule flags into chars into a new
function called get_rule_prefix().
- Don't pass the per-dir .cvsignore rule from -C for protocols < 29.
Wayne Davison [Tue, 25 Jan 2005 12:05:20 +0000 (12:05 +0000)]
- The call to delete_file() needs DEL_NO_RECURSE when handling
delete_before or delete_after or --dry-run will report too
many deletions.
- Changed DEL_RECURSE to DEL_FORCE_RECURSE.