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

Re: [PATCH 09/19] Add git-list-files, a user friendly version of ls-files and more

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Dec 2, 2014, 02:50 UTC
Message-ID
<CAPig+cQCFkGUqLjvGPLON8D3577ADyBJ2hmQ9girbO5Q1Tn6Eg@mail.gmail.com>
In-Reply-To
<1417337767-4505-10-git-send-email-pclouds@gmail.com>
On Sunday, November 30, 2014, Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
Show 12 quoted lines
>
> This is more user friendly version of ls-files:
>
> * it's automatically colored and columnized
> * it refreshes the index like all porcelain commands
> * it defaults to non-recursive behavior like ls
> * :(glob) is on by default so '*.c' means a.c but not a/b.c, use
>   '**/*.c' for that.
> * auto pager
>
> The name 'ls' is not taken. It is left for the user to make an alias
> with better default options.

I understand that your original version was named git-ls and that you renamed it to git-list-files in order to leave 'ls' available so users can create an 'ls' alias specifying their own default options. Would it make sense, however, to restore the name to git-ls and allow users to set default options via a config variable instead? Doing so would make the short-and-sweet git-ls command work for all users out-of-the-box, which might be well appreciated by Unix users.

More below.
Show 31 quoted lines
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> diff --git a/Documentation/git-list-files.txt b/Documentation/git-list-files.txt
> new file mode 100644
> index 0000000..3039e1e
> --- /dev/null
> +++ b/Documentation/git-list-files.txt
> @@ -0,0 +1,80 @@
> +git-list-files(1)
> +===============
> +
> +NAME
> +----
> +git-list-files - List files
> +
> +SYNOPSIS
> +--------
> +[verse]
> +'git list-files [options] [<pathspec>...]
> +
> +DESCRIPTION
> +-----------
> +List files (by default in current working directory) that are in the
> +index. Depending on the chosen options, maybe only modified files in
> +working tree are shown, or untracked files...
> +
> +OPTIONS
> +-------
> +-c::
> +--cached::
> +       Show cached files (default)
I realize that this mirrors what is in git-ls-files.txt, but:
s/$/./
> +-d::
> +--deleted::
> +       Show cached files that are deleted on working directory
s/$/./
> +-m::
> +--modified::
> +       Show cached files that have modification on working directory
s/$/./
> +-o::
> +--others::
> +       Show untracked files (and only unignored ones unless -i is
s/-i/`-i`/
> +       specified)
s/$/./
Show 9 quoted lines
> +-i::
> +--ignored::
> +       Show only ignored files. When showing files in the index,
> +       print only those matched by an exclude pattern. When showing
> +       "other" files, show only those matched by an exclude pattern.
> +
> +-u::
> +--unmerged::
> +       Show unmerged files
s/$/./
Show 11 quoted lines
> +--color[=<when>]::
> +--no-color::
> +       Color file names. The value must be `always`, `never`, or
> +       `auto`. `--no-color` is equivalent to
> +       `--color=never`. `--color` is equivalent to
> +       `--color=auto`. See configuration variable `color.list-files`
> +       for the default settings.
> +
> +--column[=<options>]::
> +--no-column::
> +       Display files in columns. See configuration variable column.ui
s/column.ui/`column.ui`/
Show 22 quoted lines
> +       for option syntax. `--column` and `--no-column` without options
> +       are equivalent to 'always' and 'never' respectively.
> +
> +--max-depth=<depth>::
> +       For each <pathspec> given on command line, descend at most <depth>
> +       levels of directories. A negative value means no limit.
> +       This option is ignored if <pathspec> contains active wildcards.
> +       In other words if "a*" matches a directory named "a*",
> +       "*" is matched literally so --max-depth is still effective.
> +       The default is `--max-depth=0`.
> +
> +<pathspec>::
> +       Files to show. :(glob) magic is enabled and recursion disabled
> +       by default.
> +
> +SEE ALSO
> +--------
> +linkgit:git-ls-files[1]
> +
> +GIT
> +---
> +Part of the linkgit:git[1] suite
Previous: Nguyễn Thái Ngọc DuyNext: Duy Nguyen
Message 11 of 28 in “Add git-list-files”
  1. 00/19 Add git-list-filesNguyễn Thái Ngọc Duy, Nov 30, 2014
  2. 01/19 ls_colors.c: add $LS_COLORS parsing codeNguyễn Thái Ngọc Duy, Nov 30, 2014
  3. 02/19 ls_colors.c: parse color.ls.* from config fileNguyễn Thái Ngọc Duy, Nov 30, 2014
  4. 03/19 ls_colors.c: add a function to color a file nameNguyễn Thái Ngọc Duy, Nov 30, 2014
  5. 04/19 ls_colors.c: highlight submodules like directoriesNguyễn Thái Ngọc Duy, Nov 30, 2014
  6. 05/19 ls-files: buffer full item in strbuf before printingNguyễn Thái Ngọc Duy, Nov 30, 2014
  7. 06/19 ls-files: add --color to highlight file namesNguyễn Thái Ngọc Duy, Nov 30, 2014
  8. 07/19 ls-files: add --columnNguyễn Thái Ngọc Duy, Nov 30, 2014
  9. 08/19 ls-files: support --max-depthNguyễn Thái Ngọc Duy, Nov 30, 2014
  10. 09/19 Add git-list-files, a user friendly version of ls-files and moreNguyễn Thái Ngọc Duy, Nov 30, 2014
  11. Eric SunshineDec 2, 2014
  12. Duy NguyenDec 2, 2014
  13. 10/19 list-files: -u does not imply showing stagesNguyễn Thái Ngọc Duy, Nov 30, 2014
  14. 11/19 list-files: add -R/--recursive short for --max-depth=-1Nguyễn Thái Ngọc Duy, Nov 30, 2014
  15. 12/19 list-files: add -1 short for --no-columnNguyễn Thái Ngọc Duy, Nov 30, 2014
  16. 13/19 list-files: add -t backNguyễn Thái Ngọc Duy, Nov 30, 2014
  17. 14/19 list-files: sort output and remove duplicatesNguyễn Thái Ngọc Duy, Nov 30, 2014
  18. 15/19 list-files: do not show duplicate cached entriesNguyễn Thái Ngọc Duy, Nov 30, 2014
  19. 16/19 list-files: show directories as well as filesNguyễn Thái Ngọc Duy, Nov 30, 2014
  20. 17/19 list-files: add -F/--classifyNguyễn Thái Ngọc Duy, Nov 30, 2014
  21. 18/19 list-files -F: show submodules with the new indicator '&'Nguyễn Thái Ngọc Duy, Nov 30, 2014
  22. 19/19 list-files: -M aka diff-cachedNguyễn Thái Ngọc Duy, Nov 30, 2014
  23. Junio C HamanoDec 1, 2014
  24. Duy NguyenDec 2, 2014
  25. Jeff KingDec 2, 2014
  26. Duy NguyenDec 2, 2014
  27. Jeff KingDec 2, 2014
  28. Michael J GruberDec 2, 2014

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.