I had trouble following the description of file specification in FileSets in html-manual/dirdconf.html#FileSetResource. I want to double-check that I am understanding it, and note some areas where the current language or design is confusing.
I am looking at the html doc in Debian's bacula-doc 1.36.1-1 package. First, the rule "first match wins" applies to options within an Include, but not between Include and Exclude, right? So Include { File = /a } Exclude { File = /a/b.c } will backup everything in /a except b.c, even though /a/b.c first matches the Include specification. This is confusing because the model for the handling of matching options (first match governs) is not the rule for Include/Exclude. The paragraph after the Include and Exclude options currently says "The Include resource must contain a list of directories and/or files to be processed in the backup job. Normally, all files found in all subdirectories of any directory in the Include File list will be backed up. The Include resource may also *oner more Options resources that specify options such as compression to be applied to all or any subset of the files found for backup." Around * this seems garbled. Perhaps it should be "may also contain one or more"? I also find the phrase "The Include resource must contain a list of directories and/or files" misleading, since apparently what is needed is not a list of names, but a list with entries of the form "File = xxxx". By the way, why require the File = ? Moving the section beginning "<file-list> is a list of directory and/or filename names specified with a File = directive. To include names containing spaces, enclose the name between double-quotes." up above the discussion of options, immediately after introducing Include and Exclude, would be helpful. I take it the names in the file-list can not use wild cards or regular expressions, right? Turning now to the Options specification in particular: What are the wild-card rules for the wild= directive? What characters are wild? It looks from some of the other text that only * is wild, that it will match 0 or more characters except for / (i.e., unix shell file name behavior, I think). Anyway, it would be good to say more explicitly what is intended. I'd like to know as well :) What if both wild= and regex= are specified? Finally, I think the use of exclude in options presents a somewhat confusing mental model. Without it, patterns simply determine whether the indicated options apply to a particular file. With it, they may actually drop the file from backup (I know, one could think of this as "applying" the exclude option, but to me that's a much different thing). The final problem, noted at the outset, is that one has to switch between the "first match wins" rule for options and the "any exclude rule knocks you out" rule for Include/Exclude. Can there be more than one Exclude in a FileSet? If so, does the order or position of entries matter at all? Thanks. P.S. In a home grown system of my own I had file specifications as regular expressions, with a rule that the *last* one determined what happened. Using + or include and - for exclude I could say things like (slightly simplifying) +/a -/a/b /a/b/*.c + means backup everything under /a (it is a root). - excludes the b directory, and the next line says we do backup *.c files in /a/b. Obviously this is a simpler situation than bacula's, since I didn't have any notion of associated options. ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users