Re: [PATCH] checkout.txt: note about losing staged changes with --merge
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Mar 20, 2019, 01:22 UTC
- Message-ID
- <CACsJy8AUH4nOkt6H=yu=eRktK4me9kEkjqsC3zyNZDwUKXqCPg@mail.gmail.com>
- In-Reply-To
- <xmqqk1guwdeu.fsf@gitster-ct.c.googlers.com>
On Wed, Mar 20, 2019 at 8:19 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
> > Duy Nguyen <pclouds@gmail.com> writes: > > >> I think "checkout -m <otherbranch>" with a dirty index should refuse > >> to run; there is nothing to "continue" after such a failure, so I am > >> not sure what you mean by "an option to continue" (iow, I do not see > >> a need for such an option, and if that option makes the whole notion > >> strange, we can just decide not to have it, can't we?). > > > > We have --force to continue even when we have local changes, which > > will be overwritten. I was thinking a similar option which gives us > > permission to destroy staged changes. > > Ah, then that is not "checkout --continue", but "checkout --force > -m"? That sounds sensible, and should behave as if "checkout -f > HEAD && checkout -m <otherbranch>" was done, with respect to local > changes, I would think.
Kinda. But "--force --merge" makes no sense. --force discards all local changes by definition, which means you can't have conflicts and will not need --merge. I think this is the reason why we die() out when both are specified. So we need something like --discard-staged-changes-only...
-- Duy