Merge branch 'maint'
[gitweb.git] / Documentation / git-apply.txt
index 20e12ceda002d929ffc7ee13b77d0e23c7e91356..3bd2c995da7d65977481837486dc15e5e96baf91 100644 (file)
@@ -3,17 +3,18 @@ git-apply(1)
 
 NAME
 ----
-git-apply - Apply patch on a git index file and a work tree
+git-apply - Apply a patch on a git index file and a working tree
 
 
 SYNOPSIS
 --------
 [verse]
-'git-apply' [--stat] [--numstat] [--summary] [--check] [--index] [--apply]
-         [--no-add] [--index-info] [--allow-binary-replacement | --binary]
-         [-R | --reverse] [--reject] [-z] [-pNUM] [-CNUM] [--inaccurate-eof]
-         [--whitespace=<nowarn|warn|error|error-all|strip>] [--exclude=PATH]
-         [--cached] [--verbose] [<patch>...]
+'git-apply' [--stat] [--numstat] [--summary] [--check] [--index]
+         [--apply] [--no-add] [--index-info] [-R | --reverse]
+         [--allow-binary-replacement | --binary] [--reject] [-z]
+         [-pNUM] [-CNUM] [--inaccurate-eof] [--cached]
+         [--whitespace=<nowarn|warn|error|error-all|strip>]
+         [--exclude=PATH] [--verbose] [<patch>...]
 
 DESCRIPTION
 -----------
@@ -33,8 +34,9 @@ OPTIONS
 --numstat::
        Similar to \--stat, but shows number of added and
        deleted lines in decimal notation and pathname without
-       abbreviation, to make it more machine friendly.  Turns
-       off "apply".
+       abbreviation, to make it more machine friendly.  For
+       binary files, outputs two `-` instead of saying
+       `0 0`.  Turns off "apply".
 
 --summary::
        Instead of applying the patch, output a condensed
@@ -75,8 +77,8 @@ OPTIONS
        For atomicity, gitlink:git-apply[1] by default fails the whole patch and
        does not touch the working tree when some of the hunks
        do not apply.  This option makes it apply
-       the parts of the patch that are applicable, and send the
-       rejected hunks to the standard output of the command.
+       the parts of the patch that are applicable, and leave the
+       rejected hunks in corresponding *.rej files.
 
 -z::
        When showing the index information, do not munge paths,
@@ -95,6 +97,16 @@ OPTIONS
        context exist they all must match.  By default no context is
        ever ignored.
 
+--unidiff-zero::
+       By default, gitlink:git-apply[1] expects that the patch being
+       applied is a unified diff with at least one line of context.
+       This provides good safety measures, but breaks down when
+       applying a diff generated with --unified=0. To bypass these
+       checks use '--unidiff-zero'.
++
+Note, for the reasons stated above usage of context-free patches are
+discouraged.
+
 --apply::
        If you use any of the options marked "Turns off
        'apply'" above, gitlink:git-apply[1] reads and outputs the
@@ -110,15 +122,10 @@ OPTIONS
        deletion part but not addition part.
 
 --allow-binary-replacement, --binary::
-       When applying a patch, which is a git-enhanced patch
-       that was prepared to record the pre- and post-image object
-       name in full, and the path being patched exactly matches
-       the object the patch applies to (i.e. "index" line's
-       pre-image object name is what is in the working tree),
-       and the post-image object is available in the object
-       database, use the post-image object as the patch
-       result.  This allows binary files to be patched in a
-       very limited way.
+       Historically we did not allow binary patch applied
+       without an explicit permission from the user, and this
+       flag was the way to do so.  Currently we always allow binary
+       patch application, so this is a no-op.
 
 --exclude=<path-pattern>::
        Don't apply changes to files matching the given path pattern. This can
@@ -145,14 +152,14 @@ OPTIONS
 * `strip` outputs warnings for a few such errors, strips out the
   trailing whitespaces and applies the patch.
 
---inacurate-eof::
+--inaccurate-eof::
        Under certain circumstances, some versions of diff do not correctly
        detect a missing new-line at the end of the file. As a result, patches
        created by such diff programs do not record incomplete lines
        correctly. This option adds support for applying such patches by
        working around this bug.
 
---verbose::
+-v, --verbose::
        Report progress to stderr. By default, only a message about the
        current patch being applied will be printed. This option will cause
        additional information to be reported.