Updates since v8:

 * Run interactive git-clean even if in dry_run mode. 

       -        if (interactive && !dry_run && del_list.nr > 0)
       +        if (interactive && del_list.nr > 0)
                        interactive_main_loop();
 
 * Variable menu_list is not static.
   (copy from global del_list, and forget to remove static)

        static void print_highlight_menu_stuff(struct menu_stuff *stuff, int 
**chosen)
        {
       -        static struct string_list menu_list = STRING_LIST_INIT_DUP;
       +        struct string_list menu_list = STRING_LIST_INIT_DUP;
                struct strbuf menu = STRBUF_INIT;
                int i;

 * i18n:

       @@ -567,21 +567,21 @@ static int *list_and_choose(struct menu_opts 
*opts, struct menu_stuff *stuff)
                        if (opts->header) {
                                printf_ln("%s%s%s",
                                          clean_get_color(CLEAN_COLOR_HEADER),
       -                                  opts->header,
       +                                  _(opts->header),
                                          clean_get_color(CLEAN_COLOR_RESET));
                        }
        
       ... 
       
                        if (opts->prompt) {
                                printf("%s%s%s%s",
                                       clean_get_color(CLEAN_COLOR_PROMPT),
       -                               opts->prompt,
       -                               opts->flag & MENU_OPTS_SINGLETON ? "> " 
: ">> ",
       +                               _(opts->prompt),
       +                               opts->flags & MENU_OPTS_SINGLETON ? "> " 
: ">> ",
                                       clean_get_color(CLEAN_COLOR_RESET));
                        }


       @@ -721,8 +724,8 @@ static int select_by_numbers_cmd(void)
                int i, j;
        
       -        menu_opts.prompt = "Select items to delete";
       +        menu_opts.prompt = N_("Select items to delete");

       -                menu_opts.header = _("*** Commands ***");
       -                menu_opts.prompt = "What now";
       +                menu_opts.header = N_("*** Commands ***");
       +                menu_opts.prompt = N_("What now");
  

 * Update documentation for "color.interactive" and "color.interactive.<slot>",
   because `git clean --interactive` reuses these variables from
   `git-add--interactive`.

        color.interactive::
                When set to `always`, always use colors for interactive prompts
       -        and displays (such as those used by "git-add --interactive").
       -        When false (or `never`), never.  When set to `true` or `auto`, 
use
       -        colors only when the output is to the terminal. Defaults to 
false.
       +        and displays (such as those used by "git-add --interactive" and
       +        "git-clean --interactive"). When false (or `never`), never.
       +        When set to `true` or `auto`, use colors only when the output is
       +        to the terminal. Defaults to false.
        
        color.interactive.<slot>::
       -        Use customized color for 'git add --interactive'
       -        output. `<slot>` may be `prompt`, `header`, `help` or `error`, 
for
       -        four distinct types of normal output from interactive
       -        commands.  The values of these variables may be specified as
       -        in color.branch.<slot>.
       +        Use customized color for 'git add --interactive' and 'git clean
       +        --interactive' output. `<slot>` may be `prompt`, `header`, 
`help`
       +        or `error`, for four distinct types of normal output from
       +        interactive commands.  The values of these variables may be
       +        specified as in color.branch.<slot>.
 
 * Update documentation for "column.clean", because we only use layout settings.

        column.clean::
       -        Specify whether to output cleaning files in `git clean -i` in 
columns.
       -        See `column.ui` for details.
       +        Specify the layout when list items in `git clean -i`, which 
always
       +        shows files and directories in columns. See `column.ui` for 
details.

 * Refactor: change variables' names, such as:

       @@ -57,7 +57,7 @@ enum color_clean {
        struct menu_opts {
                const char *header;
                const char *prompt;
       -        int flag;
       +        int flags;
        };
 

       @@ -428,7 +428,7 @@ static int parse_choice(struct menu_stuff 
*menu_stuff,
                                struct strbuf input,
                                int **chosen)
        {
       -        struct strbuf **choice_list, **choice_p;
       +        struct strbuf **choice_list, **ptr;
                int nr = 0;
                int i;

 * Refactor parse_clean_color_slot:

       @@ -80,19 +80,19 @@ struct menu_stuff {
                void *stuff;
        };
        
       -static int parse_clean_color_slot(const char *var, int ofs)
       +static int parse_clean_color_slot(const char *var)
        {
       -        if (!strcasecmp(var+ofs, "reset"))
       +        if (!strcasecmp(var, "reset"))
                        return CLEAN_COLOR_RESET;
       -        if (!strcasecmp(var+ofs, "plain"))
       +        if (!strcasecmp(var, "plain"))
                        return CLEAN_COLOR_PLAIN;
       -        if (!strcasecmp(var+ofs, "prompt"))
       +        if (!strcasecmp(var, "prompt"))
                        return CLEAN_COLOR_PROMPT;
       -        if (!strcasecmp(var+ofs, "header"))
       +        if (!strcasecmp(var, "header"))
                        return CLEAN_COLOR_HEADER;
       -        if (!strcasecmp(var+ofs, "help"))
       +        if (!strcasecmp(var, "help"))
                        return CLEAN_COLOR_HELP;
       -        if (!strcasecmp(var+ofs, "error"))
       +        if (!strcasecmp(var, "error"))
                        return CLEAN_COLOR_ERROR;
                return -1;
        }
       @@ -109,7 +109,8 @@ static int git_clean_config(const char *var, const 
char *value, void *cb)
                        return 0;
                }
                if (!prefixcmp(var, "color.interactive.")) {
       -                int slot = parse_clean_color_slot(var, 18);
       +                int slot = parse_clean_color_slot(var +
       +                                                  
strlen("color.interactive."));
                        if (slot < 0)
                                return 0;
                        if (!value)

 * Withdraw PATCH v8 10/12, 11/12 and 12/12.

   - git-clean refactor: save some options in clean_flags
   - git-clean refactor: add wrapper scan_clean_candidates
   - git-clean: add toggle flags interactive action

Usage:

See: [PATCH v9 9/9] git-clean: add documentation for interactive git-clean


Jiang Xin (9):
  git-clean: refactor git-clean into two phases
  git-clean: add support for -i/--interactive
  git-clean: show items of del_list in columns
  git-clean: add colors to interactive git-clean
  git-clean: use a git-add-interactive compatible UI
  git-clean: add filter by pattern interactive action
  git-clean: add select by numbers interactive action
  git-clean: add ask each interactive action
  git-clean: add documentation for interactive git-clean

 Documentation/config.txt    |  21 +-
 Documentation/git-clean.txt |  71 +++-
 builtin/clean.c             | 802 ++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 860 insertions(+), 34 deletions(-)

-- 
1.8.3.rc1.404.gb9fcf3e

--
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