Subject: Re: [PATCH v5 0/3] Advice on checkout dirty files

From: Junio C Hamano <[email-masked]>
Date: Wed, 11 Mar 2026 18:02:40 -0700

"Arsh Srivastava via GitGitGadget" <[email-masked]> writes:

> Changes:
>
>> advice.h: add ADVICE_STASH_BEFORE_CHECKOUT enum value advice.c: add
>> "stashBeforeCheckout" to advice_setting[] and implement
>> advise_on_checkout_dirty_files() function
>> Documentation/config/advice.adoc: document the new advice key
>
> Signed-off-by: Arsh Srivastava [email-masked]
>
> Arsh Srivastava (3):
>   advice: add stashBeforeCheckout advice for dirty branch switches
>   advice: add stashBeforeCheckout advice for dirty branch switches
>     [GSOC]
>   unpack-trees: suggesting 'git checkout -m <branch>' with its
>     repercussions

I still see that [PATCH 3/3] literally removes what was added by
earlier patches.  ADVICE_STASH_BEFORE_CHECKOUT is added to
advice.[ch] and stashBeforeCheckOut is added to
Documentation/config/adivce.adoc in [1/3], and then they are removed
in [3/3].  If your final solution does not involve such an advice,
then do not even add it in an earlier patch, only to retract it and
replace it with something else in a later patch.  If the reason why
that "something else" replaces the advice is because it is a better
solution to the problem you initially started to solve than the
advice message added in [1/3], then just go straight to that
"something else", without adding and removing the advice mechanism.

That is what "perfect logical progression without detours, change of
plans, and fixes earlier mistake" is about.

In other words, please do not throw a drunken-man's-walk series at
us.  Pretend to be a perfect developer.

The final series accepted by the project will have to stay in our
history for later developers to see in "git log" output to learn
from, and a series being clean logical progression is a must for
that to happen.