}
--- orig/options.c 2004-08-03 15:41:32
-+++ options.c 2004-08-03 15:41:39
++++ options.c 2004-08-04 08:36:48
@@ -51,6 +51,7 @@ int preserve_gid = 0;
int preserve_times = 0;
int update_only = 0;
int dry_run = 0;
int local_server = 0;
int ignore_times = 0;
-@@ -319,7 +320,7 @@ void usage(enum logcode F)
+@@ -287,6 +288,7 @@ void usage(enum logcode F)
+ rprintf(F," --exclude-from=FILE exclude patterns listed in FILE\n");
+ rprintf(F," --include=PATTERN don't exclude files matching PATTERN\n");
+ rprintf(F," --include-from=FILE don't exclude patterns listed in FILE\n");
++ rprintf(F," --inherit=DEPTH inherit contents of per-dir merge files\n");
+ rprintf(F," --files-from=FILE read FILE for list of source-file names\n");
+ rprintf(F," -0, --from0 all *-from file lists are delimited by nulls\n");
+ rprintf(F," --version print version number\n");
+@@ -319,7 +321,7 @@ void usage(enum logcode F)
enum {OPT_VERSION = 1000, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_DELETE_AFTER, OPT_DELETE_EXCLUDED, OPT_LINK_DEST,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_TIMEOUT,
OPT_REFUSED_BASE = 9000};
-@@ -344,6 +345,7 @@ static struct poptOption long_options[]
+@@ -344,6 +346,7 @@ static struct poptOption long_options[]
{"include", 0, POPT_ARG_STRING, 0, OPT_INCLUDE, 0, 0 },
{"exclude-from", 0, POPT_ARG_STRING, 0, OPT_EXCLUDE_FROM, 0, 0 },
{"include-from", 0, POPT_ARG_STRING, 0, OPT_INCLUDE_FROM, 0, 0 },
{"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 },
{"help", 'h', POPT_ARG_NONE, 0, 'h', 0, 0 },
{"backup", 'b', POPT_ARG_NONE, &make_backups, 0, 0, 0 },
-@@ -566,6 +568,31 @@ int parse_arguments(int *argc, const cha
+@@ -566,6 +569,31 @@ int parse_arguments(int *argc, const cha
XFLG_FATAL_ERRORS | XFLG_DEF_INCLUDE);
break;
case 'h':
usage(FINFO);
exit_cleanup(0);
-@@ -969,6 +996,12 @@ void server_options(char **args,int *arg
+@@ -969,6 +997,12 @@ void server_options(char **args,int *arg
if (x != 1)
args[ac++] = argstr;
struct exclude_list_struct {
--- orig/rsync.yo 2004-08-03 15:34:32
-+++ rsync.yo 2004-08-03 15:34:44
++++ rsync.yo 2004-08-04 08:36:18
@@ -334,6 +334,7 @@ verb(
--exclude-from=FILE exclude patterns listed in FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE don't exclude patterns listed in FILE
-+ --inherit=DEPTH make per-dir merge files inherited
++ --inherit=DEPTH inherit contents of per-dir merge files
--files-from=FILE read FILE for list of source-file names
-0 --from0 all file lists are delimited by nulls
--version print version number
+contents of per-directory merge files is inherited by the subdirectories of
+the spot where the rules were read in. If a subdirectory has its own
+per-directory merge file, its contents are prefixed to the inherited rules,
-+which gives them higher priority.
++which gives the newest rules a higher priority than the inherited rules.
+
+The DEPTH value tells rsync how much deeper than the root directory of the
+transfer should be scanned for merge files. If you don't need any higher
+supply the count of how many parent-directory levels should be scanned.
+The reason this is useful is that you may wish to transfer just a small
+portion of a larger tree of files, but to be sure to get all the
-+appropriate exclude rules, you need to be sure that rsync reads in all the
++appropriate exclude rules, you need to make rsync read in all the
+merge files from the top of the tree of related files.
+
+Note also that you can eliminate all the inherited rules for the current
then it is always considered an exclude pattern, even if specified as
part of an include option. The prefix is discarded before matching.
-+ it() if the pattern starts with ". " (a dot followed by a space) then it
-+ its pattern is taken to be a merge file that is read in to supplement the
++ it() if the pattern starts with ". " (a dot followed by a space) then its
++ pattern is taken to be a merge file that is read in to supplement the
+ current rules. See the section on MERGING EXCLUDE FILES for more
+ information.
+
+Note also that the parsing of any merge-file named ".cvsignore" is always
+done in a CVS-compatible manner, even if -C wasn't specified (i.e. the
+rules are always exclude rules (even when specified by an include option);
-+they are split on whitespace; and no special prefixes, list-clearing
-+tokens, or comment characters are honored).
++they are split on whitespace; the contents is never inherited; and no
++prefixes, list-clearing tokens, or comment characters are honored).
+
+See the --inherit option for how to make the rules read from a
+per-directory merge file inherited by all the subdirectories of the