Re: [PATCH v5 0/3] interactive git clean
- From
Jiang Xin <worldhello.net@gmail.com>
- Date
- May 4, 2013, 01:06 UTC
- Message-ID
- <CANYiYbG5q7g-Gn-EGtsgS4XYLbQJuY6Pr_6FgKknADTD5_KoTg@mail.gmail.com>
- In-Reply-To
- <CAPig+cQALgr_VXwG5jBiFVTM627se8zQz7vsmF=A9OLcp_GT9A@mail.gmail.com>
2013/5/3 Eric Sunshine <sunshine@sunshineco.com>:
Show 14 quoted lines
>> WARNING: The following items will be removed permanently. Press "y" >> WARNING: to start cleaning, and press "n" to abort the cleaning. >> WARNING: You can also enter the "edit" mode, and select items >> WARNING: to be excluded from the cleaning. > > The user intended for files to be removed when invoking git-clean, > therefore WARNING that git-clean will do what was requested explicitly > seems overkill. Along the same lines, the user asked explicitly for an > interactive session (via --interactive), hence the above paragraph is > effectively redundant since it does little more than tell the user (in > a lengthy fashion) what he already knows (that the session is > interactive). The short prompt printed after the listed files says the > same thing (more succinctly), thus this warning paragraph is > essentially superfluous.
I will try to make the header short, and not too scary.
Show 9 quoted lines
>> In this confirmation dialog, the user has three choices: >> >> * Yes: Start to do cleaning. >> * No: Nothing will be deleted. >> * Edit (default for the first time): Enter the edit mode. > > What about the user who desires more traditional "rm -i" behavior in > which he is prompted for each file? Should that be supported with a > "Prompt [each]" option in the above menu?
I'd like to have a try. Maybe I can borrow code/interface from git-add--interactive.perl to support both (batch exclude and confirm one by one). For example:
*** Would remove the following item(s) ***
files to be removed... files to be removed...
files to be removed... files to be removed...
files to be removed... files to be removed...*** Commands ***
1. [y]es, clean 2. [n]o, quit 3. batch [e]xclude
4.[c]onfirm one by one
What now> einput ignore patterns>> * ![a-c]*
files to be removed... files to be removed...
files to be removed... files to be removed...
Input ignore patterns>> ENTER*** Would remove the following item(s) ***
files to be removed... files to be removed...
files to be removed... files to be removed...*** Commands ***
1. [y]es, clean 2. [n]o, quit 3. batch [e]xclude
4.[c]onfirm one by one
What now> yRemoving ... Removing ...
Show 13 quoted lines
> More generally, is this sort of modal edit mode desirable and > convenient? Can the edit operation be combined with the top-level > prompt? For example: > > % git clean -i > file1 file2 file3 > file4 file5 file6 > Remove ([y]es, [n]o, [p]rompt, exclusion-list)? file[4-6] > file1 file2 file3 > Remove ([y]es, [n]o, [p]rompt, exclusion-list)? p > file1 (y/n/q/!)? y > file2 (y/n/q/!)? n > file3 (y/n/q/!)? y
What If there is a file named 'y', and the user want to exclude it, and press 'y' as a pattern.
-- Jiang Xin