From: Junio C Hamano Date: Thu, 20 Feb 2020 20:47:24 GMT Subject: Re: [PATCH v8 10/15] bugreport: add config values from safelist Message-ID: In-Reply-To: <20200220015858.181086-11-emilyshaffer@google.com> Emily Shaffer writes: > @@ -94,6 +120,7 @@ int cmd_main(int argc, const char **argv) > char *option_output = NULL; > char *option_suffix = "%F-%H%M"; > struct stat statbuf; > + int nongit_ok = 0; > > const struct option bugreport_options[] = { > OPT_STRING('o', "output-directory", &option_output, N_("path"), > @@ -102,6 +129,10 @@ int cmd_main(int argc, const char **argv) > N_("specify a strftime format suffix for the filename")), > OPT_END() > }; > + > + /* Prerequisite for hooks and config checks */ > + setup_git_directory_gently(&nongit_ok); Now this starts to break "-o" option when the command is run from a subdirectory of a git working tree, I suspect. The setup() will discover that you are in a Git controlled working tree, goes up to the top-level of the working tree, so a user may expect cd t && git bugreport -o frotz to create a new directory t/frotz, but it would instead create the directory frotz next to t/, no? Using OPT_FILENAME and feeding correct prefix to parse_options() will correct this. > argc = parse_options(argc, argv, "", bugreport_options, > bugreport_usage, 0);