All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 3/3] builtin/add: error out when passing untracked path with -u
Date: Tue, 02 Apr 2024 14:49:40 -0700	[thread overview]
Message-ID: <xmqqh6gj305n.fsf@gitster.g> (raw)
In-Reply-To: <20240402213640.139682-7-shyamthakkar001@gmail.com> (Ghanshyam Thakkar's message of "Wed, 3 Apr 2024 03:06:26 +0530")

Ghanshyam Thakkar <shyamthakkar001@gmail.com> writes:

> When passing untracked path with -u option, it silently succeeds.
> There is no error message and the exit code is zero. This is
> inconsistent with other instances of git commands where the expected
> argument is a known path. In those other instances, we error out when
> the path is not known.
>
> Fix this by passing a character array to add_files_to_cache() to
> collect the pathspec matching information and report the error and
> exit if a pathspec does not match any cache entry. Also add a testcase
> to cover this scenario.
>
> Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
> ---
>  builtin/add.c         | 11 ++++++++++-
>  t/t2200-add-update.sh | 10 ++++++++++
>  2 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/add.c b/builtin/add.c
> index dc4b42d0ad..88261b0f2b 100644
> --- a/builtin/add.c
> +++ b/builtin/add.c
> @@ -370,6 +370,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
>  	int add_new_files;
>  	int require_pathspec;
>  	char *seen = NULL;
> +	char *ps_matched = NULL;
>  	struct lock_file lock_file = LOCK_INIT;
>  
>  	git_config(add_config, NULL);
> @@ -549,13 +550,20 @@ int cmd_add(int argc, const char **argv, const char *prefix)
>  
>  	begin_odb_transaction();
>  
> +	ps_matched = xcalloc(pathspec.nr, 1);
>  	if (add_renormalize)
>  		exit_status |= renormalize_tracked_files(&pathspec, flags);
>  	else
>  		exit_status |= add_files_to_cache(the_repository, prefix,
> -						  &pathspec, NULL,
> +						  &pathspec, ps_matched,
>  						  include_sparse, flags);
>  
> +	if (take_worktree_changes && !add_renormalize &&
> +	    report_path_error(ps_matched, &pathspec)) {
> +		free(ps_matched);
> +		exit(1);
> +	}

Shouldn't we pay attention to ignore_add_errors?  The same comments
about free'ing and exit code from the review on the previous step
apply here, too.

Other than that, looking good.

  reply	other threads:[~2024-04-02 21:49 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18 15:51 [PATCH 0/2] fix certain cases of add and commit with untracked path not erroring out Ghanshyam Thakkar
2024-03-18 15:51 ` [PATCH 1/2] builtin/commit: error out when passing untracked path with -i Ghanshyam Thakkar
2024-03-18 17:27   ` Junio C Hamano
2024-03-18 15:52 ` [PATCH 2/2] builtin/add: error out when passing untracked path with -u Ghanshyam Thakkar
2024-03-18 17:31   ` Junio C Hamano
2024-03-29 20:56 ` [PATCH v2 0/3] commit, add: error out when passing untracked path Ghanshyam Thakkar
2024-04-02 21:36   ` [PATCH v3 0/3] commit, add: error out when passing untracked paths Ghanshyam Thakkar
2024-04-03 18:14     ` [PATCH v4 0/3] commit,add: error out when passing untracked path Ghanshyam Thakkar
2024-04-03 18:14     ` [PATCH v4 1/3] revision: optionally record matches with pathspec elements Ghanshyam Thakkar
2024-04-03 18:14     ` [PATCH v4 2/3] builtin/commit: error out when passing untracked path with -i Ghanshyam Thakkar
2024-04-03 18:14     ` [PATCH v4 3/3] builtin/add: error out when passing untracked path with -u Ghanshyam Thakkar
2024-04-02 21:36   ` [PATCH v3 1/3] revision: optionally record matches with pathspec elements Ghanshyam Thakkar
2024-04-02 21:36   ` [PATCH v3 2/3] builtin/commit: error out when passing untracked path with -i Ghanshyam Thakkar
2024-04-02 21:47     ` Junio C Hamano
2024-04-02 21:58       ` Ghanshyam Thakkar
2024-04-02 21:36   ` [PATCH v3 3/3] builtin/add: error out when passing untracked path with -u Ghanshyam Thakkar
2024-04-02 21:49     ` Junio C Hamano [this message]
2024-04-02 22:00       ` Ghanshyam Thakkar
2024-03-29 20:56 ` [PATCH v2 1/3] read-cache: optionally collect pathspec matching info Ghanshyam Thakkar
2024-03-29 21:35   ` Junio C Hamano
2024-03-29 22:16     ` Junio C Hamano
2024-03-30 14:27       ` Ghanshyam Thakkar
2024-03-30 16:27         ` Junio C Hamano
2024-03-29 20:56 ` [PATCH v2 2/3] builtin/commit: error out when passing untracked path with -i Ghanshyam Thakkar
2024-03-29 21:38   ` Junio C Hamano
2024-03-29 20:56 ` [PATCH v2 3/3] builtin/add: error out when passing untracked path with -u Ghanshyam Thakkar
2024-03-29 21:43   ` Junio C Hamano
2024-03-30 14:18     ` Ghanshyam Thakkar
2024-03-30 16:49       ` Junio C Hamano
2024-04-01 13:27         ` Ghanshyam Thakkar
2024-04-01 16:31           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqh6gj305n.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=shyamthakkar001@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.