Re: [PATCH v2 1/2] rm: better error message on failure for multiple files
- From
- Mathieu Liénard--Mayor <mathieu.lienard--mayor@ensimag.fr>
- Date
- Jun 10, 2013, 14:57 UTC
- Message-ID
- <580989b4b95a7302a42c7f25024c3375@ensibm.imag.fr>
- In-Reply-To
- <vpqtxl6ghf5.fsf@anie.imag.fr>
Le 2013-06-10 16:38, Matthieu Moy a écrit :
Show 26 quoted lines
> Mathieu Lienard--Mayor <Mathieu.Lienard--Mayor@ensimag.imag.fr> > writes: > >> When 'git rm' fails, it now displays a single message >> with the list of files involved, instead of displaying >> a list of messages with one file each. >> >> As an example, the old message: >> error: 'foo.txt' has changes staged in the index >> (use --cached to keep the file, or -f to force removal) >> error: 'bar.txt' has changes staged in the index >> (use --cached to keep the file, or -f to force removal) >> >> would now be displayed as: >> error: the following files have changes staged in the index: >> foo.txt >> bar.txt >> (use --cached to keep the file, or -f to force removal) >> >> Signed-off-by: Mathieu Lienard--Mayor >> <Mathieu.Lienard--Mayor@ensimag.imag.fr> >> Signed-off-by: Jorge Juan Garcia Garcia >> <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr> >> Signed-off-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>list > > There's a "list" after my email, probably a typo.
yes, that's a leftover from a rebase-i
Show 7 quoted lines
> >> +/* >> + * PRECONDITION: files_list is a non-empty string_list >> + */ > > Avoid repeating in comments what the code already says. "file_list is > non-empty" is sufficient, we already know it's a string_list.
Okay
Show 22 quoted lines
>
>> + if (files_staged.nr)
>> + errs = print_error_files(&files_staged,
>> + _("the following files have staged "
>> + "content different from both the"
>> + "\nfile and the HEAD:"),
>> + _("\n(use -f to force removal)"));
>> + if (files_cached.nr)
>> + errs = print_error_files(&files_cached,
>> + _("the following files have changes "
>> + "staged in the index:"),
>> + _("\n(use --cached to keep the file, "
>> + "or -f to force removal)"));
>
> What happens if both conditions are true? It seems the second will
> override the first. I think it'd be OK because what matters is that
> errs
> is set by someone, no matter who, and the error message is displayed
> on
> screen, not contained in the variable, but this looks weird.
>
> I'd find it more readable with "errs |= print_error_files(...)".Well the current code is only using errs=error(...), using the same variable errs over and over, no matter how many times it loops. That's why i implemented it similarly.
Show 6 quoted lines
> > And actually, you may want to move the if (....nr) inside > print_error_files (wich could then be called > print_error_files_maybe). > > At least, there should be a test where two conditions are true.
I'll do that, to be sure about the behaviour.
Show 11 quoted lines
>
>> + if (files_submodule.nr)
>> + errs = print_error_files(&files_submodule,
>> + _("the following submodules (or one "
>> + "of its nested submodule) use a "
>> + ".git directory:"),
>> + _("\n(use 'rm -rf' if you really "
>> + "want to remove i including all "
>
> i -> it
> ?-- Mathieu Liénard--Mayor, 2nd year at Grenoble INP - ENSIMAG (+33)6 80 56 30 02