diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt index 54a4b29b473cc4..3e4d76ee9a4e4e 100644 --- a/Documentation/git-status.txt +++ b/Documentation/git-status.txt @@ -149,6 +149,13 @@ ignored, then the directory is not shown, but all contents are shown. threshold. See also linkgit:git-diff[1] `--find-renames`. +--no-lock-index:: +--lock-index:: + (DEPRECATED: use --no-optional-locks instead) + Specifies whether `git status` should try to lock the index and + update it afterwards if any changes were detected. Defaults to + `--lock-index`. + ...:: See the 'pathspec' entry in linkgit:gitglossary[7]. diff --git a/builtin/commit.c b/builtin/commit.c index cf0e24d3abf25c..e9f3ea41d82b2d 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -1475,6 +1475,7 @@ int cmd_status(int argc, const char **argv, const char *prefix) { static int no_renames = -1; static const char *rename_score_arg = (const char *)-1; + static int no_lock_index = 0; static struct wt_status s; unsigned int progress_flag = 0; int fd; @@ -1513,6 +1514,9 @@ int cmd_status(int argc, const char **argv, const char *prefix) OPT_CALLBACK_F('M', "find-renames", &rename_score_arg, N_("n"), N_("detect renames, optionally set similarity index"), PARSE_OPT_OPTARG | PARSE_OPT_NONEG, opt_parse_rename_score), + OPT_BOOL(0, "no-lock-index", &no_lock_index, + N_("(DEPRECATED: use `git --no-optional-locks status` " + "instead) Do not lock the index")), OPT_END(), }; @@ -1529,6 +1533,12 @@ int cmd_status(int argc, const char **argv, const char *prefix) finalize_colopts(&s.colopts, -1); finalize_deferred_config(&s); + if (no_lock_index) { + warning("--no-lock-index is deprecated, use --no-optional-locks" + " instead"); + setenv(GIT_OPTIONAL_LOCKS_ENVIRONMENT, "false", 1); + } + handle_untracked_files_arg(&s); handle_ignored_arg(&s); diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 2b7ef6c41a4554..31fdb56eaba170 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -1646,6 +1646,17 @@ test_expect_success '"Initial commit" should not be noted in commit template' ' test_i18ngrep ! "Initial commit" output ' +test_expect_success '--no-lock-index prevents index update and is deprecated' ' + test-tool chmtime =1234567890 .git/index && + git status --no-lock-index 2>err && + grep "no-lock-index is deprecated" err && + test-tool chmtime -v +0 .git/index >out && + grep ^1234567890 out && + git status && + test-tool chmtime -v +0 .git/index >out && + ! grep ^1234567890 out +' + test_expect_success '--no-optional-locks prevents index update' ' test_set_magic_mtime .git/index && git --no-optional-locks status &&