diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-11-10 18:02:16 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-11-10 18:02:16 +0900 |
commit | 57b530125e022de79f5f0b208bc0a5ee67c18b77 (patch) | |
tree | b6eaafd7b203b0886aa44d3a299823cbd2eeb933 /builtin/update-index.c | |
parent | Merge branch 'pb/pretty-email-without-domain-part' (diff) | |
parent | stash: handle staged changes in skip-worktree files correctly (diff) | |
download | tgif-57b530125e022de79f5f0b208bc0a5ee67c18b77.tar.xz |
Merge branch 'js/update-index-ignore-removal-for-skip-worktree'
"git stash save" in a working tree that is sparsely checked out
mistakenly removed paths that are outside the area of interest.
* js/update-index-ignore-removal-for-skip-worktree:
stash: handle staged changes in skip-worktree files correctly
update-index: optionally leave skip-worktree entries alone
Diffstat (limited to 'builtin/update-index.c')
-rw-r--r-- | builtin/update-index.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/builtin/update-index.c b/builtin/update-index.c index 49302d98c5..d527b8f106 100644 --- a/builtin/update-index.c +++ b/builtin/update-index.c @@ -35,6 +35,7 @@ static int verbose; static int mark_valid_only; static int mark_skip_worktree_only; static int mark_fsmonitor_only; +static int ignore_skip_worktree_entries; #define MARK_FLAG 1 #define UNMARK_FLAG 2 static struct strbuf mtime_dir = STRBUF_INIT; @@ -381,7 +382,8 @@ static int process_path(const char *path, struct stat *st, int stat_errno) * so updating it does not make sense. * On the other hand, removing it from index should work */ - if (allow_remove && remove_file_from_cache(path)) + if (!ignore_skip_worktree_entries && allow_remove && + remove_file_from_cache(path)) return error("%s: cannot remove from the index", path); return 0; } @@ -1014,6 +1016,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) {OPTION_SET_INT, 0, "no-skip-worktree", &mark_skip_worktree_only, NULL, N_("clear skip-worktree bit"), PARSE_OPT_NOARG | PARSE_OPT_NONEG, NULL, UNMARK_FLAG}, + OPT_BOOL(0, "ignore-skip-worktree-entries", &ignore_skip_worktree_entries, + N_("do not touch index-only entries")), OPT_SET_INT(0, "info-only", &info_only, N_("add to index only; do not add content to object database"), 1), OPT_SET_INT(0, "force-remove", &force_remove, |