diff options
author | Victoria Dye <vdye@github.com> | 2022-01-11 18:04:59 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-01-13 13:49:44 -0800 |
commit | 1624333ec1486378c44ce38e4f8ae9d02c07d15a (patch) | |
tree | 1c7fd4f92c99a74cb92b2148f2777f05b20522d3 | |
parent | bb01b26dec69f5f287f0d36cbe4c765fe7f7b053 (diff) |
reset: reorder wildcard pathspec conditions
Rearrange conditions in method determining whether index expansion is
necessary when a pathspec is specified for `git reset`, placing less
expensive condition first. Additionally, add details & examples to related
code comments to help with readability.
Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Victoria Dye <vdye@github.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/reset.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/builtin/reset.c b/builtin/reset.c index b1ff699b43..79b40385b9 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -204,10 +204,16 @@ static int pathspec_needs_expanded_index(const struct pathspec *pathspec) /* * Special case: if the pattern is a path inside the cone * followed by only wildcards, the pattern cannot match - * partial sparse directories, so we don't expand the index. + * partial sparse directories, so we know we don't need to + * expand the index. + * + * Examples: + * - in-cone/foo***: doesn't need expanded index + * - not-in-cone/bar*: may need expanded index + * - **.c: may need expanded index */ - if (path_in_cone_mode_sparse_checkout(item.original, &the_index) && - strspn(item.original + item.nowildcard_len, "*") == item.len - item.nowildcard_len) + if (strspn(item.original + item.nowildcard_len, "*") == item.len - item.nowildcard_len && + path_in_cone_mode_sparse_checkout(item.original, &the_index)) continue; for (pos = 0; pos < active_nr; pos++) { |