Thread (17 messages) flat view 17 messages, 2 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help