From: Junio C Hamano <gitster@pobox•com>
To: "Nguyễn Thái Ngọc Duy" <pclouds@gmail•com>
Cc: git@vger•kernel.org, git@drmicha•warpmail.net
Subject: Re: [PATCH 01/16] list-files: command skeleton
Date: Thu, 12 Mar 2015 14:02:36 -0700 [thread overview]
Message-ID: <xmqq1tku2akz.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1425896314-10941-2-git-send-email-pclouds@gmail.com> ("Nguyễn Thái Ngọc Duy"'s message of "Mon, 9 Mar 2015 17:18:19 +0700")
Nguyễn Thái Ngọc Duy <pclouds@gmail•com> writes:
> list-files is supposed to be the user friendly version of ls-files, or
> an alternative to git-status. Nothing fancy in this patch yet.
The result of applying this patch alone will not give us anything
fancy, but the patch itself is interesting ;-)
> +static void populate_cached_entries(struct string_list *result,
> + const struct index_state *istate)
> +{
> + int i;
> +
> + for (i = 0; i < istate->cache_nr; i++) {
> + const struct cache_entry *ce = istate->cache[i];
> +
> + if (!match_pathspec(&pathspec, ce->name, ce_namelen(ce),
> + 0, NULL,
> + S_ISDIR(ce->ce_mode) ||
> + S_ISGITLINK(ce->ce_mode)))
Because we won't tell the user "You gave me Mkaefile but that did
not match" when "git list-files Mkaefile" does not produce anything,
we do not need to pass seen[] down from here.
> + prefix = cmd_prefix;
> + if (prefix)
> + prefix_length = strlen(prefix);
> +
> + if (read_cache() < 0)
> + die(_("index file corrupt"));
> +
> + git_config(ls_config, NULL);
> +
> + argc = parse_options(argc, argv, prefix, ls_options, ls_usage, 0);
> +
> + parse_pathspec(&pathspec, 0,
> + PATHSPEC_PREFER_CWD |
> + PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP,
> + cmd_prefix, argv);
> + pathspec.max_depth = 0;
> + pathspec.recursive = 1;
> +
> + refresh_index(&the_index, REFRESH_QUIET | REFRESH_UNMERGED,
> + &pathspec, NULL, NULL);
It would be better to do read-cache-preload, instead of read-cache,
if you are going to immediately refresh. That is what "git status"
does.
> + populate_cached_entries(&result, &the_index);
> + display(&result);
> + string_list_clear(&result, 0);
> + return 0;
> +}
> diff --git a/git.c b/git.c
> index 18fbf79..ae7fe77 100644
> --- a/git.c
> +++ b/git.c
> @@ -418,6 +418,7 @@ static struct cmd_struct commands[] = {
> { "init", cmd_init_db, NO_SETUP },
> { "init-db", cmd_init_db, NO_SETUP },
> { "interpret-trailers", cmd_interpret_trailers, RUN_SETUP },
> + { "list-files", cmd_list_files, RUN_SETUP | USE_PAGER | NEED_WORK_TREE },
Thanks.
next prev parent reply other threads:[~2015-03-12 21:02 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-09 10:18 [PATCH 00/16] nd/list-files redesign Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 01/16] list-files: command skeleton Nguyễn Thái Ngọc Duy
2015-03-12 21:02 ` Junio C Hamano [this message]
2015-03-09 10:18 ` [PATCH 02/16] list-files: make :(glob) pathspec default Nguyễn Thái Ngọc Duy
2015-03-12 21:10 ` Junio C Hamano
2015-03-14 11:21 ` Duy Nguyen
2015-03-09 10:18 ` [PATCH 03/16] list-files: show paths relative to cwd Nguyễn Thái Ngọc Duy
2015-03-12 21:20 ` Junio C Hamano
2015-03-12 21:28 ` Junio C Hamano
2015-03-14 11:25 ` Duy Nguyen
2015-03-15 21:16 ` Junio C Hamano
2015-03-15 23:41 ` Duy Nguyen
2015-03-09 10:18 ` [PATCH 04/16] list-files: add tag to each entry, filter duplicate tags Nguyễn Thái Ngọc Duy
2015-03-12 21:48 ` Junio C Hamano
2015-03-09 10:18 ` [PATCH 05/16] list-files: add --[no-]column, -C and -1 Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 06/16] list-files: add --max-depth and -R Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 07/16] list-files: show directories as well as files Nguyễn Thái Ngọc Duy
2015-03-10 6:23 ` Eric Sunshine
2015-03-10 6:39 ` Duy Nguyen
2015-03-09 10:18 ` [PATCH 08/16] list-files: add --color Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 09/16] list-files: add -F/--classify Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 10/16] list-files: new indicator '&' for submodules when -F is used Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 11/16] list-files: add --cached and --others Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 12/16] list-files: add --ignored Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 13/16] list-files: add --unmerged Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 14/16] list-files: add file modification options -[admADM] Nguyễn Thái Ngọc Duy
2015-03-09 10:18 ` [PATCH 15/16] list-files: delete redundant cached entries Nguyễn Thái Ngọc Duy
2015-03-10 6:28 ` Eric Sunshine
2015-03-09 10:18 ` [PATCH 16/16] list-files: make alias 'ls' default to 'list-files' Nguyễn Thái Ngọc Duy
-- strict thread matches above, loose matches on Subject: below --
2015-03-14 11:13 [PATCH 01/16] list-files: command skeleton Duy Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq1tku2akz.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=git@drmicha$(echo .)warpmail.net \
--cc=git@vger$(echo .)kernel.org \
--cc=pclouds@gmail$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox