git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails.

From
Jon Seymour <jon.seymour@gmail.com>
Date
Jul 25, 2011, 08:45 UTC
Message-ID
<CAH3Anrrbj93briHKpxEjpoVTOnSikQYQyxa4R=C7QKt=punyVw@mail.gmail.com>
In-Reply-To
<CACsJy8Aa_=BvZOt58sM4dknVzvihH9OtHAS1aRxqPwNLxh0fkg@mail.gmail.com>
Fair point.
Everyone ok with this revision? If so, I will re-roll v4.
Jens: I added the variable back because the return statement with a
ternary operator needed a line break. Let me know
if there is a better way to format it.
jon.
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index d96e9c4..990e1a3 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -120,7 +120,7 @@ int cmd_ls_tree(int argc, const char **argv, const
char *prefix)
 {
        unsigned char sha1[20];
        struct tree *tree;
-       int i, full_tree = 0;
+       int i, full_tree = 0, ret;
        const struct option ls_tree_options[] = {
                OPT_BIT('d', NULL, &ls_options, "only show trees",
                        LS_TREE_ONLY),
@@ -173,6 +173,7 @@ int cmd_ls_tree(int argc, const char **argv, const
char *prefix)
        tree = parse_tree_indirect(sha1);
        if (!tree)
                die("not a tree object");
-       return read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL);
+       ret = read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL);

+       return ret ? 1 : 0;
 }


On Mon, Jul 25, 2011 at 11:31 AM, Nguyen Thai Ngoc Duy
<pclouds@gmail.com> wrote:
> On Sun, Jul 24, 2011 at 9:59 PM, Jon Seymour <jon.seymour@gmail.com> wrote:
>> @@ -173,7 +173,6 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
>>        tree = parse_tree_indirect(sha1);
>>        if (!tree)
>>                die("not a tree object");
>> -       read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL);
>> +       return read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL);
>>
>> -       return 0;
>
> Nit picking. Most programs return positive value (usually 1) for error
> cases here. read_tree_recursive may return -1 (which turns out to be
> 255). Also removing the last blank line in this function would be
> nice.
> --
> Duy
>
Previous: Nguyen Thai Ngoc DuyNext: Nguyen Thai Ngoc Duy
Message 5 of 9 in “ls-tree: exit with non-zero status on error”
  1. 0/2 ls-tree: exit with non-zero status on errorJon Seymour, Jul 24, 2011
  2. 1/2 Add a test to check that git ls-tree sets non-zero exit code on error.Jon Seymour, Jul 24, 2011
  3. 2/2 Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails.Jon Seymour, Jul 24, 2011
  4. Nguyen Thai Ngoc DuyJul 25, 2011
  5. Jon SeymourJul 25, 2011
  6. Nguyen Thai Ngoc DuyJul 25, 2011
  7. Andreas SchwabJul 25, 2011
  8. Jens LehmannJul 25, 2011
  9. Junio C HamanoJul 25, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.