- patch.py can read patches from stdin
- patch.py can show nice histogram with --diffstat option
- added detection of SVN, GIT and HG patch types, unrecognized
patches marked as PLAIN
- added error reporting for parsing functions and helpers (now they
return False if parsing failed) - make sure you handle this correctly
- added normalization to filenames to protect against patching files
using absolute paths or files in parent directories
- test run patch.py on all patches submitted to Python bug tracker, which
resulted in improved parsing and error handling for some corner cases
- improved logging
- API changes
* fromfile(), fromstring() and fromurl() now return False on errors
* previous Patch is renamed to PatchSet, new Patch is single file entry
* Patch.header is now a list of strings
* PatchSet.parse() now returns True if parsing completed without errors
+ PatchSet.__len__()
+ PatchSet.diffstat()
+ PatchSet.type and Patch.type
+ PatchSet.errors and
+ xisabs() cross-platform version of `os.path.isabs()`
+ xnormpath() forward slashed version of `os.path.normpath()`
+ xstrip() to strip absolute path prefixes