For now it's simply a wrapper of ls-files with some default
goodies. But I want it to be the UI for ls-tree and perhaps git diff
--name-only [--cached] too.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
---
 builtin.h          |  1 +
 builtin/ls-files.c | 19 +++++++++++++++++++
 git.c              |  1 +
 3 files changed, 21 insertions(+)

diff --git a/builtin.h b/builtin.h
index c47c110..177aa7d 100644
--- a/builtin.h
+++ b/builtin.h
@@ -75,6 +75,7 @@ extern int cmd_index_pack(int argc, const char **argv, const 
char *prefix);
 extern int cmd_init_db(int argc, const char **argv, const char *prefix);
 extern int cmd_log(int argc, const char **argv, const char *prefix);
 extern int cmd_log_reflog(int argc, const char **argv, const char *prefix);
+extern int cmd_ls(int argc, const char **argv, const char *prefix);
 extern int cmd_ls_files(int argc, const char **argv, const char *prefix);
 extern int cmd_ls_tree(int argc, const char **argv, const char *prefix);
 extern int cmd_ls_remote(int argc, const char **argv, const char *prefix);
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 2c51b0a..5354339 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -17,6 +17,7 @@
 #include "color.h"
 #include "ls_colors.h"
 #include "column.h"
+#include "argv-array.h"
 
 static int abbrev;
 static int show_deleted;
@@ -479,6 +480,7 @@ int cmd_ls_files(int argc, const char **argv, const char 
*cmd_prefix)
        int require_work_tree = 0, show_tag = 0, i;
        unsigned int colopts = 0;
        int max_depth = -1;
+       int refresh = 0;
        const char *max_prefix;
        struct dir_struct dir;
        struct exclude_list *el;
@@ -539,6 +541,7 @@ int cmd_ls_files(int argc, const char **argv, const char 
*cmd_prefix)
                { OPTION_INTEGER, 0, "max-depth", &max_depth, N_("depth"),
                        N_("descend at most <depth> levels"), PARSE_OPT_NONEG,
                        NULL, 1 },
+               OPT_HIDDEN_BOOL(0, "refresh-index", &refresh, N_("refresh 
index")),
                OPT__ABBREV(&abbrev),
                OPT_BOOL(0, "debug", &debug_mode, N_("show debugging data")),
                OPT_END()
@@ -555,6 +558,8 @@ int cmd_ls_files(int argc, const char **argv, const char 
*cmd_prefix)
 
        if (read_cache() < 0)
                die("index file corrupt");
+       if (refresh)
+               refresh_cache(REFRESH_QUIET);
 
        argc = parse_options(argc, argv, prefix, builtin_ls_files_options,
                        ls_files_usage, 0);
@@ -652,3 +657,17 @@ int cmd_ls_files(int argc, const char **argv, const char 
*cmd_prefix)
 
        return 0;
 }
+
+int cmd_ls(int argc, const char **argv, const char *cmd_prefix)
+{
+       struct argv_array av = ARGV_ARRAY_INIT;
+       argv_array_pushl(&av, "ls-files",
+                        "--color", "--column", "--max-depth=0",
+                        "--exclude-standard", "--refresh-index",
+                        NULL);
+       argv++;
+       while (*argv)
+               argv_array_push(&av, *argv++);
+       trace_argv_printf(av.argv, "trace: built-in: git");
+       return cmd_ls_files(av.argc, av.argv, cmd_prefix);
+}
diff --git a/git.c b/git.c
index 9efd1a3..682a81e 100644
--- a/git.c
+++ b/git.c
@@ -381,6 +381,7 @@ static struct cmd_struct commands[] = {
        { "init", cmd_init_db },
        { "init-db", cmd_init_db },
        { "log", cmd_log, RUN_SETUP },
+       { "ls", cmd_ls, RUN_SETUP },
        { "ls-files", cmd_ls_files, RUN_SETUP },
        { "ls-remote", cmd_ls_remote, RUN_SETUP_GENTLY },
        { "ls-tree", cmd_ls_tree, RUN_SETUP },
-- 
1.9.0.40.gaa8c3ea

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to