X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-commit.c;h=592b10396d1d6aa25d5d1c0aa27556c93c219877;hb=73d66323ac78c750ba42fef23b1cb8fd2110e023;hp=073fe90ba1e04c3845fe49521db39b28339acb43;hpb=054d2fa05cf0bc55fe1556c9e87d58d67a144f44;p=git.git diff --git a/builtin-commit.c b/builtin-commit.c index 073fe90ba..592b10396 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -183,11 +183,15 @@ static int list_paths(struct string_list *list, const char *with_tree, for (i = 0; i < active_nr; i++) { struct cache_entry *ce = active_cache[i]; + struct string_list_item *item; + if (ce->ce_flags & CE_UPDATE) continue; if (!match_pathspec(pattern, ce->name, ce_namelen(ce), 0, m)) continue; - string_list_insert(ce->name, list); + item = string_list_insert(ce->name, list); + if (ce_skip_worktree(ce)) + item->util = item; /* better a valid pointer than a fake one */ } return report_path_error(m, pattern, prefix ? strlen(prefix) : 0); @@ -200,6 +204,10 @@ static void add_remove_files(struct string_list *list) struct stat st; struct string_list_item *p = &(list->items[i]); + /* p->util is skip-worktree */ + if (p->util) + continue; + if (!lstat(p->string, &st)) { if (add_to_cache(p->string, &st, 0)) die("updating files failed");