Failure at "unimportant" Files

When you patch complete directories, there is by default the requirement that first all files must be successfully be prepared before any change to the existing files occurs. So by default all files are important to succeed. But you may tell GenPatch to flag files so that  they are going to be tolerated to fail being updated when the patch file exists.

The conservative default that may only be overridden at patch creation time has been chosen in order to allow you, as the software vendor, to keep control over what installations might exist. The problems arising with uncontrolled mixed installations are not in your interest. Instead it is your interest to be certain that the patching process will either perform the update if your requirements are met or that it will just leave the old state as it was if not. Either all important files are updated or none at all. Your choice is which files are important.

So while by default, all files are considered important, some files like e.g. "readme.txt" are obviously normally not really that important and may not even need to be updated for the most users. But, unless you tell GenPatch that it is not, it will cause the complete update process to fail because the user might have deleted the old file to save disk space or whatever.

You may specify files that will not cause failure of the patch apply process in case there was no appropriate source file found when the patch tries to create this file by patching it. Use GenPatch option "-u=pattern" in order to do that. By specifying "-u=*.dat" you tell GenPatch to allow failure in updating all files matching the pattern. Note that "-u=*" will tolerate just any file to fail, but usage is not recommended because the Auto-find will think that such patches may be "applied" to just any directory. DoPatch does not detect this, so be aware not to tolerate failure of patching with at least one file (typically the main executable) that serves as a kind of anchor for your patch file.

Normally the patch file will show a warning when a file mark as unimportant is missing To hide away even this warning and making BinPatch skip the files completely silent, you can use "-unimportant-nowarn=pattern" instead. To let the end user decide whether he has a problem or not with this, you can use "-unimportant-query=pattern" and have him see a message dialog that allows to continue or  cancel applying the patch file.