X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=builtin-ls-tree.c;h=9a5977fb99c3c61522fee3678fb94b1815575c61;hb=bc32fed5516375ef78bc0f6270eb57bf1bb12d47;hp=201defd9344a25e16066dc7d0a0a8f5707a930cb;hpb=cef19c7af5202c547abe4c8a538ac7b9a4970f0e;p=git.git diff --git a/builtin-ls-tree.c b/builtin-ls-tree.c index 201defd93..9a5977fb9 100644 --- a/builtin-ls-tree.c +++ b/builtin-ls-tree.c @@ -6,6 +6,7 @@ #include "cache.h" #include "blob.h" #include "tree.h" +#include "commit.h" #include "quote.h" #include "builtin.h" @@ -59,7 +60,24 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen, int retval = 0; const char *type = blob_type; - if (S_ISDIR(mode)) { + if (S_ISGITLINK(mode)) { + /* + * Maybe we want to have some recursive version here? + * + * Something like: + * + if (show_subprojects(base, baselen, pathname)) { + if (fork()) { + chdir(base); + exec ls-tree; + } + waitpid(); + } + * + * ..or similar.. + */ + type = commit_type; + } else if (S_ISDIR(mode)) { if (show_recursive(base, baselen, pathname)) { retval = READ_TREE_RECURSIVE; if (!(ls_options & LS_SHOW_TREES)) @@ -118,7 +136,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) chomp_prefix = 0; break; } - if (!strncmp(argv[1]+2, "abbrev=",7)) { + if (!prefixcmp(argv[1]+2, "abbrev=")) { abbrev = strtoul(argv[1]+9, NULL, 10); if (abbrev && abbrev < MINIMUM_ABBREV) abbrev = MINIMUM_ABBREV;