Re: [PATCH v2 4/5] Expand support for ignored arguments on status
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 12, 2017, 03:58 UTC
- Message-ID
- <xmqqinfl10gc.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20171011133504.15049-5-jamill@microsoft.com>
Jameson Miller <jameson.miller81@gmail.com> writes:
Show 32 quoted lines
> Teach status command to handle matching ignored mode when showing
> untracked files with the normal option.
>
> Signed-off-by: Jameson Miller <jamill@microsoft.com>
> ---
> dir.c | 20 ++++++++++++++++++--
> 1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/dir.c b/dir.c
> index b9af87eca9..8636d080b2 100644
> --- a/dir.c
> +++ b/dir.c
> @@ -1585,6 +1585,7 @@ static enum path_treatment treat_one_path(struct dir_struct *dir,
> {
> int exclude;
> int has_path_in_index = !!index_file_exists(istate, path->buf, path->len, ignore_case);
> + enum path_treatment path_treatment;
>
> if (dtype == DT_UNKNOWN)
> dtype = get_dtype(de, istate, path->buf, path->len);
> @@ -1631,8 +1632,23 @@ static enum path_treatment treat_one_path(struct dir_struct *dir,
> return path_none;
> case DT_DIR:
> strbuf_addch(path, '/');
> - return treat_directory(dir, istate, untracked, path->buf, path->len,
> - baselen, exclude, pathspec);
> + path_treatment = treat_directory(dir, istate, untracked,
> + path->buf, path->len,
> + baselen, exclude, pathspec);
> + /*
> + * If we are only want to return directories that
> + * match an exclude pattern, and this directories doess/are //; s/directories/directory/
Show 11 quoted lines
> + * not match an exclude pattern but all contents are > + * excluded, then indicate that we should recurse into > + * this directory (instead of marking the directory > + * itself as an ignored path) > + */ > + if (!exclude && > + path_treatment == path_excluded && > + (dir->flags & DIR_SHOW_IGNORED_TOO) && > + (dir->flags & DIR_SHOW_IGNORED_TOO_MODE_MATCHING)) > + return path_recurse; > + return path_treatment;
The required change to the code is surprisingly small ;-) and it is well explained in the comment. Good job.
> case DT_REG: > case DT_LNK: > return exclude ? path_excluded : path_untracked;