On Tue, 02 Apr 2024, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Ghanshyam Thakkar <shyamthakkar001@xxxxxxxxx> 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@xxxxxxxxx> > > --- > > 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. Will update. > Other than that, looking good. Thanks.