Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin-ls-files.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/builtin-ls-files.c b/builtin-ls-files.c index bcb1536..0064f73 100644 --- a/builtin-ls-files.c +++ b/builtin-ls-files.c @@ -29,6 +29,7 @@ static const char **pathspec; static int error_unmatch; static char *ps_matched; static const char *with_tree; +static const char *narrow_spec; static const char *tag_cached = ""; static const char *tag_unmerged = ""; @@ -219,6 +220,7 @@ static void show_ce_entry(const char *tag, struct cache_entry *ce) write_name_quoted(ce->name + offset, stdout, line_terminator); } +int match_narrow_spec(const char *spec_, const char *path); /* unpack-trees.c */ static void show_files(struct dir_struct *dir, const char *prefix) { int i; @@ -248,6 +250,8 @@ static void show_files(struct dir_struct *dir, const char *prefix) continue; if (show_checkout && ce_no_checkout(ce)) continue; + if (narrow_spec && !match_narrow_spec(narrow_spec, ce->name)) + continue; show_ce_entry(ce_stage(ce) ? tag_unmerged : tag_cached, ce); } } @@ -429,7 +433,7 @@ static const char ls_files_usage[] = "git ls-files [-z] [-t] [-v] (--[cached|checkout|deleted|others|stage|unmerged|killed|modified])* " "[ --ignored ] [--exclude=<pattern>] [--exclude-from=<file>] " "[ --exclude-per-directory=<filename> ] [--exclude-standard] " - "[--full-name] [--abbrev] [--] [<file>]*"; + "[--narrow-match=narrowspec] [--full-name] [--abbrev] [--] [<file>]*"; int cmd_ls_files(int argc, const char **argv, const char *prefix) { @@ -472,6 +476,10 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix) show_checkout = 1; continue; } + if (!prefixcmp(arg, "--narrow-match=")) { + narrow_spec = arg+15; + continue; + } if (!strcmp(arg, "-d") || !strcmp(arg, "--deleted")) { show_deleted = 1; continue; -- 1.6.0.rc3.250.g8dd0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html