Skip to content

Commit

Permalink
ls-tree: resurrect '-d' to mean 'show trees only'
Browse files Browse the repository at this point in the history
With this:

	git-ls-tree -d HEAD -- drivers/net/

shows only immediate subtrees of drivers/net.

	git-ls-tree -d -t HEAD -- drivers/net/

shows drivers, drivers/net and immediate subtrees of
drivers/net.

	git-ls-tree -d -r HEAD -- drivers/net/

shows drivers, drivers/net and all subtrees of drivers/net (but
not blobs).

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Dec 1, 2005
1 parent 0f8f45c commit f598467
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions ls-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ static int show_tree(unsigned char *sha1, const char *base, int baselen, const c
}
type = "tree";
}
else if (ls_options & LS_TREE_ONLY)
return 0;

printf("%06o %s %s\t", mode, type, sha1_to_hex(sha1));
write_name_quoted(base, baselen, pathname, line_termination, stdout);
Expand Down Expand Up @@ -95,6 +97,10 @@ int main(int argc, const char **argv)
}
argc--; argv++;
}
/* -d -r should imply -t, but -d by itself should not have to. */
if ( (LS_TREE_ONLY|LS_RECURSIVE) ==
((LS_TREE_ONLY|LS_RECURSIVE) & ls_options))
ls_options |= LS_SHOW_TREES;

if (argc < 2)
usage(ls_tree_usage);
Expand Down

0 comments on commit f598467

Please sign in to comment.