On Tue, Oct 14, 2014 at 2:29 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > John Szakmeister <john@xxxxxxxxxxxxxxx> writes: > >> It is possible that a user is trying to run a git command and fail to realize >> that they are not in a git repository or working tree. When trying to complete >> an operation, __git_refs would fall to a degenerate case and attempt to use >> "git for-each-ref", which would emit the error. >> >> Let's fix this by shunting the error message coming from "git for-each-ref". > > Hmph, do you mean this one? > > $ cd /var/tmp ;# not a git repository > $ git checkout <TAB> > > -> > > $ git checkout fatal: Not a git repository (or any of the parent directories): .git > HEAD > > I agree it is ugly, but would it be an improvement for the end user, > who did not realize that she was not in a directory where "git checkout" > makes sense, not to tell her that she is not in a git repository in > some way? I had thought about that too, but I think--for me--it comes down to two things: 1) We're not intentionally trying to inform the user anywhere else that they are not in a git repo. We simply fail to complete anything, which I think is an established behavior. 2) It mingles with the stuff already on the command line, making it confusing to know what you typed. Then you end up ctrl-c'ing your way out of it and starting over--which is the frustrating part. For me, I thought it better to just be more well-behaved. I've also run across this issue when I legitimately wanted to do something--I wish I could remember what it was--with a remote repo and didn't happen to be in a git working tree. It was frustrating to see this error message then too, for the same reason as above. I use tab completion quite extensively, so spitting things like this out making it difficult to move forward is a problem. Would it be better to check that "$dir" is non-empty and then provide the extra bits of information? We could then avoid giving the user anything in that case. -John -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html