Skip to contentSkip to conversation

apply: apply works outside a repository

PATCH In review Björn Gustavsson 2 participants 2 messages Jun 15, 2016 Documentation

lore
Share & tools
lore
#0 lore raw

PATCH 2/4 apply: apply works outside a repository

The documentation for 'git apply' talks about applying a patch/diff to the index and to the working tree, which seems to imply that it will not work outside a git repository.

Actually 'git patch' works outside a repository (which can be useful especially for applying binary or rename patches that the standard "patch" utility cannot handle), so the documentation should mention it.

---
 Documentation/git-apply.txt |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
Documentation/git-apply.txt +4 -0
index 4f791ee..6857a68 100644
@@ -23,6 +23,10 @@ DESCRIPTION
 Reads supplied 'diff' output and applies it on a git index file
 and a work tree.
 
+'git-apply' can also be used outside a git repository as long
+as no options that require a git repository are given
+(e.g. `--index` or `--cached`).
+
 OPTIONS
 -------
 <patch>...::
Signature · 1 line
1.6.5.3.298.g39add
#1 lore raw
Quoted 3 lines · Björn Gustavsson

The documentation for 'git apply' talks about applying a patch/diff to the index and to the working tree, which seems to imply that it will not work outside a git repository.

Thanks. I think the headline should also be reworded. It currently reads:

Apply a patch on a git index file and/or a working tree

but historically and still in real life practices, when you use apply (as opposed to am), you apply primarily to the files and optionally to the index, so this should read something like:

Apply a patch to files and/or to the index

We could say "to files in the work tree", but that would give a wrong impression that the files we talk about must be in a directory that is part of the work tree of some repository, so it probably is better without it.

The same comment applies to the beginning of the DESCRIPTION section. I actually think your added text should reword the current two-liner there, instead of being added at the bottom. Here is my attempt.

Reads supplied diff output (iow "a patch"), and applies it to files. With --index (--cache) options, the patch is also (only) applied to the index respectively. Without these options, the command applies the patch only to files, and does not require them to be in a git repository.