If rev-parse is called with both -q and an --is-* option, the result is provided as the return code of the command, iso. printed to stdout. This simplifies using these queries in shell scripts: git rev-parse --is-bare-repository && do_stuff git rev-parse --is-shallow-repository && do_stuff Signed-off-by: Erlend E. Aasland <erlend.aasland@xxxxxxxxx> --- builtin/rev-parse.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 7a00da8203..5a8b404ec7 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -874,24 +874,31 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) continue; } if (!strcmp(arg, "--is-inside-git-dir")) { - printf("%s\n", is_inside_git_dir() ? "true" - : "false"); + int is_set = is_inside_git_dir(); + if (quiet) + return is_set ? 0 : 1; + printf("%s\n", is_set ? "true" : "false"); continue; } if (!strcmp(arg, "--is-inside-work-tree")) { - printf("%s\n", is_inside_work_tree() ? "true" - : "false"); + int is_set = is_inside_work_tree(); + if (quiet) + return is_set ? 0 : 1; + printf("%s\n", is_set ? "true" : "false"); continue; } if (!strcmp(arg, "--is-bare-repository")) { - printf("%s\n", is_bare_repository() ? "true" - : "false"); + int is_set = is_bare_repository(); + if (quiet) + return is_set ? 0 : 1; + printf("%s\n", is_set ? "true" : "false"); continue; } if (!strcmp(arg, "--is-shallow-repository")) { - printf("%s\n", - is_repository_shallow(the_repository) ? "true" - : "false"); + int is_set = is_repository_shallow(the_repository); + if (quiet) + return is_set ? 0 : 1; + printf("%s\n", is_set ? "true" : "false"); continue; } if (!strcmp(arg, "--shared-index-path")) { -- 2.25.1