Message ID | 591c7b8d73b1a93feaa749d68156a198a7e32a9c.1700761448.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Sparse checkout completion fixes | expand |
On Thu, Nov 23, 2023 at 05:44:05PM +0000, Elijah Newren via GitGitGadget wrote: > From: Elijah Newren <newren@gmail.com> > > If, in the root of a project, one types > > git sparse-checkout set --cone ../<TAB> > > then an error message of the form > > fatal: ../: '../' is outside repository at '/home/newren/floss/git' > > is written to stderr, which munges the users view of their own command. > Squelch such messages. > > Signed-off-by: Elijah Newren <newren@gmail.com> > --- > contrib/completion/git-completion.bash | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index ba5c395d2d8..6fced40d04c 100644 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -3014,7 +3014,7 @@ __gitcomp_directories () > COMPREPLY+=("$c/") > _found=1 > fi > - done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir) > + done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir 2>/dev/null) It would be better to use the __git wrapper instead, like the wast majority of git invocations in our completion script, because it not only takes care of squelching standard error, but also takes into account any -C dir and/or --git-dir options present on the command line. e15098a314 (completion: consolidate silencing errors from git commands, 2017-02-03) > > if [[ $_found == 0 ]] && [[ "$cur" =~ /$ ]]; then > # No possible further completions any deeper, so assume we're at > -- > gitgitgadget > >
On Fri, Nov 24, 2023 at 10:39 AM SZEDER Gábor <szeder.dev@gmail.com> wrote: > > On Thu, Nov 23, 2023 at 05:44:05PM +0000, Elijah Newren via GitGitGadget wrote: > > From: Elijah Newren <newren@gmail.com> > > > > If, in the root of a project, one types > > > > git sparse-checkout set --cone ../<TAB> > > > > then an error message of the form > > > > fatal: ../: '../' is outside repository at '/home/newren/floss/git' > > > > is written to stderr, which munges the users view of their own command. > > Squelch such messages. > > > > Signed-off-by: Elijah Newren <newren@gmail.com> > > --- > > contrib/completion/git-completion.bash | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > > index ba5c395d2d8..6fced40d04c 100644 > > --- a/contrib/completion/git-completion.bash > > +++ b/contrib/completion/git-completion.bash > > @@ -3014,7 +3014,7 @@ __gitcomp_directories () > > COMPREPLY+=("$c/") > > _found=1 > > fi > > - done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir) > > + done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir 2>/dev/null) > > It would be better to use the __git wrapper instead, like the wast > majority of git invocations in our completion script, because it not > only takes care of squelching standard error, but also takes into > account any -C dir and/or --git-dir options present on the command > line. > > e15098a314 (completion: consolidate silencing errors from git > commands, 2017-02-03) Ooh, nice! Thanks for the pointer, I was unaware. I'll make that change.
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index ba5c395d2d8..6fced40d04c 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -3014,7 +3014,7 @@ __gitcomp_directories () COMPREPLY+=("$c/") _found=1 fi - done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir) + done < <(git ls-tree -z -d --name-only HEAD $_tmp_dir 2>/dev/null) if [[ $_found == 0 ]] && [[ "$cur" =~ /$ ]]; then # No possible further completions any deeper, so assume we're at