diff options
author | Josh Steadmon <steadmon@google.com> | 2022-04-04 15:42:24 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-04-06 08:41:25 -0700 |
commit | 350296cc78912c245847ec65e55143053450cce1 (patch) | |
tree | a0812fe413b90cdbfb07a188dc726c24e59d0af9 /builtin | |
parent | ls-tree: split up "fast path" callbacks (diff) | |
download | tgif-350296cc78912c245847ec65e55143053450cce1.tar.xz |
ls-tree: `-l` should not imply recursive listing
In 9c4d58ff2c (ls-tree: split up "fast path" callbacks, 2022-03-23), a
refactoring of the various read_tree_at() callbacks caused us to
unconditionally recurse into directories if `-l` (long format) was
passed on the command line, regardless of whether or not we also pass
the `-r` (recursive) flag.
Fix this by making show_tree_long() return the value of `recurse`,
rather than always returning 1. This value is interpreted by
read_tree_at() to be a signal on whether or not to recurse.
Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/ls-tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c index 44a91cf9d0..696d94b8b8 100644 --- a/builtin/ls-tree.c +++ b/builtin/ls-tree.c @@ -255,7 +255,7 @@ static int show_tree_long(const struct object_id *oid, struct strbuf *base, printf("%06o %s %s %7s\t", data.mode, type_name(data.type), find_unique_abbrev(data.oid, abbrev), size_text); show_tree_common_default_long(base, pathname, data.base->len); - return 1; + return recurse; } static int show_tree_name_only(const struct object_id *oid, struct strbuf *base, |