From: Victoria Dye Date: Tue, 11 Jan 2022 18:04:59 +0000 (+0000) Subject: reset: reorder wildcard pathspec conditions X-Git-Tag: v2.36.0-rc0~141^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1624333ec1486378c44ce38e4f8ae9d02c07d15a;p=thirdparty%2Fgit.git 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 Signed-off-by: Victoria Dye Reviewed-by: Elijah Newren Signed-off-by: Junio C Hamano --- 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++) {