Similarly to file comparisons, folder comparisons use filters that select the files and folders to be included or excluded in the difference analysis.
A folder comparison filter is an ordered collection of rules i.e. regular and/or shell expressions that are configured to match the names of files and/or folders and to either include the matching file-system resources into the comparison or exclude them from the field of interest of the analysis.
To keep working with filters simple, each filter is given a human-readable name and only one filter is being used in a given comparison. Power of expression is not sacrificed though because a single filter utilizes multiple rules and, just like file comparison, check boxes enable selective inclusion or exclusion of rules during the actual comparison.
With regular expressions being the Swiss-army knife of string matching and the experience gathered through file-comparison filters, it only makes sense to give the same control even when selecting files and/or folders for comparison based on their name. No matter how fancy the inclusion or exclusion criteria are, regular expressions will do the job.
And since folder comparison filters pick in or out files and folders, DeltaWalker makes it easy to express the selection intentions using the simplest and the most common of file-system name matching techniques - shell expressions. The characters ? and * along with any character being accepted by the underlying file system as a part of a file or folder name can quickly give a rule of choice. Single arbitrary characters will be matched by the shell-expression character ? and zero or more characters will be covered by the shell-expression character *.
Rule | Target | Action | Effect |
* | Files & Folders | Include | Matches all files and folders and marks them for inclusion in the actual comparison |
Rule | Target | Action | Effect |
* | Folders | Include | Looks recursively in the development tree |
bin | Folders | Exclude | ...not taking into account the contents of binary output folders |
*.c;*.cpp;*.cs;*.h;*.java;*.rc | Files | Include | ...and marks well-known source files to be included into the actual comparison |
*.cab;*.dll;*.exe;*.idb;*.map;*.ncb;*.o;*.obj;*.pch | Files | Exclude | ...while at the same time not analyzing well-known object and binary files that are the product of a compilation process |