interdiff
To reverse a patch, use /dev/null for diff2.
To reduce the amount of context in a patch, use:
interdiff -U1 /dev/null patchfile
Since interdiff doesn't have the advantage of being able to look at the files that are to be modified, it has stricter requirements on the input format than patch(1) does. The output of GNU diff will be okay, even with extensions, but if you intend to use a hand-edited patch it might be wise to clean up the offsets and counts using recountdiff(1) first.
Note, however, that the two patches must both be relative to the versions of the same original set of files.
The diffs may be in context format. The output, however, will be in unified format.