Copyright (C) 2000-2012 |
GNU Info (diff.info)Reversed PatchesApplying 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 |