GNU Info

Info Node: (diff.info)Reversed Patches

(diff.info)Reversed Patches


Next: Inexact Prev: Changed White Space Up: Imperfect
Enter node , (file) or (file)node

Applying Reversed Patches
-------------------------

   Sometimes people run `diff' with the new file first instead of
second.  This creates a diff that is "reversed".  To apply such
patches, give `patch' the `-R' or `--reverse' option.  `patch' then
attempts to swap each hunk around before applying it.  Rejects come out
in the swapped format.  The `-R' option does not work with `ed' scripts
because there is too little information in them to reconstruct the
reverse operation.

   Often `patch' can guess that the patch is reversed.  If the first
hunk of a patch fails, `patch' reverses the hunk to see if it can apply
it that way.  If it can, `patch' asks you if you want to have the `-R'
option set; if it can't, `patch' continues to apply the patch normally.
This method cannot detect a reversed patch if it is a normal diff and
the first command is an append (which should have been a delete) since
appends always succeed, because a null context matches anywhere.  But
most patches add or change lines rather than delete them, so most
reversed normal diffs begin with a delete, which fails, and `patch'
notices.

   If you apply a patch that you have already applied, `patch' thinks
it is a reversed patch and offers to un-apply the patch.  This could be
construed as a feature.  If you did this inadvertently and you don't
want to un-apply the patch, just answer `n' to this offer and to the
subsequent "apply anyway" question--or type `C-c' to kill the `patch'
process.


automatically generated by info2www version 1.2.2.9