Re: [PATCH v5 0/3] interactive git clean
From: Jiang Xin <hidden>
Date: 2016-06-15 22:57:08
2013/5/3 Eric Sunshine [off-list ref]:
quoted
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.
quoted
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> e
input 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> y
Removing ...
Removing ...
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