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

Re: git-ls-tree: add "-t" option to always show the tree entries

From
Junio C Hamano <junkio@cox.net>
Date
Dec 1, 2005, 21:15 UTC
Message-ID
<7vlkz4friv.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.64.0512011022520.3099@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
> NOTE! This also means that it will show all trees leading up to that tree. 

... which is logical but slightly unexpected. Also I noticed we lost '-d' but still accept it as an option, so...

-- >8 -- [PATCH]: ls-tree: resurrect '-d' to mean 'show trees only'

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>
---
 * The practical value of this patch is dubious, and we might
   want to simply remove '-d' from the options.  But the output
   from this looks kind-of nice.  Thoughts?
diff --git a/ls-tree.c b/ls-tree.c
index a2a5eb0..07db863 100644
--- a/ls-tree.c
+++ b/ls-tree.c
@@ -61,6 +61,8 @@ static int show_tree(unsigned char *sha1
 		}
 		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);
@@ -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);
Previous: Linus TorvaldsNext: Linus Torvalds
Message 10 of 15 in “What's new in git.git master branch”
  1. Junio C HamanoNov 30, 2005
  2. Fredrik KuivinenDec 1, 2005
  3. Junio C HamanoDec 1, 2005
  4. Junio C HamanoDec 2, 2005
  5. Junio C HamanoDec 2, 2005
  6. Fredrik KuivinenDec 2, 2005
  7. Fredrik KuivinenDec 2, 2005
  8. 3/3 update-index: allow --index-info to add higher stages.Junio C Hamano, Dec 7, 2005
  9. git-ls-tree: add "-t" option to always show the tree entriesLinus Torvalds, Dec 1, 2005
  10. Junio C HamanoDec 1, 2005
  11. Linus TorvaldsDec 1, 2005
  12. Junio C HamanoDec 1, 2005
  13. ls-tree: --name-onlyJunio C Hamano, Dec 1, 2005
  14. Junio C HamanoDec 2, 2005
  15. Linus TorvaldsDec 2, 2005

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.