summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-11-27 06:04:12 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-11-27 06:09:56 (GMT)
commit5e83cca0b83b4a915f9ed246c2bcfeeb5a58b86b (patch)
tree908db13cb02fd251323300ddfc6802995f4867c6 /Documentation
parent27344d6a6c8056664966e11acf674e5da6dd7ee3 (diff)
downloadgit-5e83cca0b83b4a915f9ed246c2bcfeeb5a58b86b.zip
git-5e83cca0b83b4a915f9ed246c2bcfeeb5a58b86b.tar.gz
git-5e83cca0b83b4a915f9ed246c2bcfeeb5a58b86b.tar.bz2
git-status.txt: mention --no-optional-locks
If you come to the documentation thinking "I do not want Git to take any locks for my background processes", then you may easily run across "--no-optional-locks" in git.txt. But it's quite reasonable to hit a specific instance of the problem: you have "git status" running in the background, and you notice that it causes lock contention with other processes. So you look in git-status.txt to see if there is a way to disable it, but there's no mention of the flag. Let's add a short note mentioning that status does indeed touch the index (and why), with a pointer to the global option. That can point users in the right direction and help them make a more informed decision about what they're disabling. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/git-status.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt
index d47f198..23af8c6 100644
--- a/Documentation/git-status.txt
+++ b/Documentation/git-status.txt
@@ -366,6 +366,19 @@ ignored submodules you can either use the --ignore-submodules=dirty command
line option or the 'git submodule summary' command, which shows a similar
output but does not honor these settings.
+BACKGROUND REFRESH
+------------------
+
+By default, `git status` will automatically refresh the index, updating
+the cached stat information from the working tree and writing out the
+result. Writing out the updated index is an optimization that isn't
+strictly necessary (`status` computes the values for itself, but writing
+them out is just to save subsequent programs from repeating our
+computation). When `status` is run in the background, the lock held
+during the write may conflict with other simultaneous processes, causing
+them to fail. Scripts running `status` in the background should consider
+using `git --no-optional-locks status` (see linkgit:git[1] for details).
+
SEE ALSO
--------
linkgit:gitignore[5]